2012-06-20 15 views
7

Iniziato a utilizzare Visual Studio 2012 RC da ieri, abbiamo una soluzione WCF. Ogni volta che cerco di utilizzare la finestra di dialogo "aggiungi/rimuovi riferimento" in un'altra soluzione, ottengo l'errore qui sotto dopo aver aggiunto il servizio.Errore di Visual Studio 2012 Reference.svcmap Errore di lancio

Error 1 Reference.svcmap: Failed to generate code for the service reference 'DPService'. Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Error: Type 'WebSupergoo.ABCpdf8.Objects.Bookmark' is a recursive collection data contract which is not supported. Consider modifying the definition of collection 'WebSupergoo.ABCpdf8.Objects.Bookmark' to remove references to itself. XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IGQDynamicPackaging'] Cannot import wsdl:binding Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on. XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IGQDynamicPackaging'] XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] Cannot import wsdl:port Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on. XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences/DPService/

Si prega di notare che: Il suddetto servizio funzionava correttamente quando ho usato VS 2010. Per il vostro riferimento, Stiamo usando "tipi riutilizzo nelle assemblee di riferimento" acceso e "tipi di riutilizzo di tutti gli assembly referenziati" opzione selezionata .

Le stesse impostazioni funzionavano correttamente con VS 2010 e possiamo aggiungere riferimento. Ma ora, dopo aver installato VS 2012 RC, non riesco ad aggiungere il riferimento per entrambi i VS 2010 e VS2012. Qualsiasi soluton o aggirare per questo.

Voglio solo eseguire il rollback e voglio utilizzare VS2010, "aggiungi servizio" fornisce lo stesso errore di riferimento in VS 2010 ora.

+0

Ho lo stesso problema, qualsiasi aggiornamento? –

+1

Sto disinstallando vs 2012 e disinstallerò .net 4.5, hai provato a farlo? è stato utile? –

+0

Ciao MSS, non abbiamo ancora provato a disinstallarlo. Hai successo dopo la disinstallazione? Apprezzo il tuo contributo su questo. – amaz

risposta

1

Disinstallare vs 2012, vs 2010 ti darà "Errore sconosciuto", un piccolo messaggio di errore, riparazione vs 2010 (re-installarlo), e sarà OK!

+0

non capisco perché disinstallare vs 2012 quindi installare vs 2010 quindi reinstallare 2012 –

+0

ho lo stesso problema dal modo in cui –

+0

intendo: re-installare vs 2010 e non vs 2012, il problema causato vs 2010 non funziona! così, ho riparato dopo la disinstallazione vs 2012. –

42

Ho avuto un problema simile e ho deselezionato la casella di controllo "Riusa tipi negli assiemi di riferimento" nella finestra di dialogo di riferimento Configura servizio.

1) Fare clic destro sul servizio di riferimento 2) Selezionare Configura Service Reference 3) Deselezionare "tipi di riutilizzo in assemblee a cui fa riferimento"

io non sono sicuro di tutte le ramificazioni di fare questo, ma mi ha fatto attraverso per poter usare nuovamente il riferimento.

+2

Nel nostro caso, dobbiamo usare l'opzione "assembly di riferimento" poiché abbiamo assembly separati che condividono i tipi tra wcf e web. Punto Notevole è che abbiamo fatto molto codice usando il gruppo di riferimento. cambiare tutti di nuovo per fare riferimento al proxy generato è davvero un incubo – amaz

+2

Ho provato questa soluzione e non era utile !! –

+2

La ramificazione è che non si riutilizza i tipi e si genera un nuovo set di classi per ciascuno degli oggetti del modello. Va bene se sono pocos ma fa schifo se hai la convalida della convalida condivisa tra client e server. La cosa strana è che un utente stava installando sp1 e le cose sono andate bene. Che in qualche modo ha effettuato la mia macchina ... riutilizzando un modo unicking, aggiornandolo e poi riaccendendolo e tutto si è comportato di nuovo. –

4

Sembra che "CustomerServiceReference" sia stato definito in due assembly a cui fa riferimento il progetto. Il generatore di codice non ha idea di quale dovrebbe essere usato.

Per sbarazzarsi di questo problema, proprio come ha detto Lars. È possibile configurare il riferimento del servizio, nella scheda delle opzioni avanzate, è possibile disabilitare i "tipi di riutilizzo in tutti gli assembly di riferimento" (selezionare "riutilizzare i tipi negli assembly di riferimento specificati"). È possibile selezionare tutti gli assembly tranne l'assembly che causa questo problema (che definisce CustomerServiceReference come indicato dal messaggio di errore).

Problemi correlati