WCF errori in VS 2010 / .Net 4 utilizzando campione publish / subscribe app dal sito web iDesign
-
27-09-2019 - |
Domanda
Sto tentando di compilare / eseguire un campione applicazione WCF da di Juval Lowy sito web ( autore di programmazione WCF Servizi e fondatore di iDesign ). L'applicazione è un esempio di un'applicazione di pubblicazione / sottoscrizione 'semaforo' che richiede l'utilizzo di VS 2010 / .Net 4 . Questo è il mio primo tentativo di utilizzare qualcosa di diverso da VS 2008 / Net 3.5.
Inizialmente ho ricevuto il seguente errore binding:
"estensione vincolante Configurazione 'System.serviceModel / binding / netOnewayRelayBinding' non poteva essere trovato ".
Questo errore è apparso essere risolto modificando il file machine.config .Net 4, a includere i seguenti riferimenti dal file machine.config Net 2.
<xml>
<bindingElementExtensions>
<add name="tcpRelayTransport" type="Microsoft.ServiceBus.Configuration.TcpRelayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="httpRelayTransport" type="Microsoft.ServiceBus.Configuration.HttpRelayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="httpsRelayTransport" type="Microsoft.ServiceBus.Configuration.HttpsRelayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="onewayRelayTransport" type="Microsoft.ServiceBus.Configuration.RelayedOnewayTransportElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="webMessageEncoding" type="System.ServiceModel.Configuration.WebMessageEncodingElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="context" type="System.ServiceModel.Configuration.ContextBindingElementExtensionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="byteStreamMessageEncoding" type="System.ServiceModel.Configuration.ByteStreamMessageEncodingElement, System.ServiceModel.Channels, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="discoveryClient" type="System.ServiceModel.Discovery.Configuration.DiscoveryClientElement, System.ServiceModel.Discovery, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingElementExtensions>
<bindingExtensions>
<add name="webHttpBinding" type="System.ServiceModel.Configuration.WebHttpBindingCollectionElement, System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="basicHttpContextBinding" type="System.ServiceModel.Configuration.BasicHttpContextBindingCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="basicHttpRelayBinding" type="Microsoft.ServiceBus.Configuration.BasicHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="webHttpRelayBinding" type="Microsoft.ServiceBus.Configuration.WebHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="ws2007HttpRelayBinding" type="Microsoft.ServiceBus.Configuration.WS2007HttpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="netTcpRelayBinding" type="Microsoft.ServiceBus.Configuration.NetTcpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="netOnewayRelayBinding" type="Microsoft.ServiceBus.Configuration.NetOnewayRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="netEventRelayBinding" type="Microsoft.ServiceBus.Configuration.NetEventRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="wsHttpContextBinding" type="System.ServiceModel.Configuration.WSHttpContextBindingCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="netTcpContextBinding" type="System.ServiceModel.Configuration.NetTcpContextBindingCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</bindingExtensions>
Purtroppo in esecuzione i risultati dell'applicazione nel seguente errore di sicurezza:
Si è verificato un errore durante la creazione del gestore della sezione di configurazione per system.serviceModel / cliente: Che montaggio non consente parzialmente fiducia chiamanti.
(\ Semaforo \ TrafficController \ bin \ Debug \ TrafficController.vshost.exe.Config linea 4)
Il codice sorgente di esempio è disponibile per il download al seguente link: http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=-1&tabid=19&download=226
So che il codice di Juval non è colpa qui e che deve essere qualcosa che sto facendo di sbagliato con la mia configurazione VS 2010. Non sono stato in grado di trovare una soluzione online. Qualcuno potrebbe me guidare nella giusta direzione sul modo migliore per affrontare questo problema?
Soluzione
Sei consapevole del fatto che la netOnewayRelayBinding
è un Windows Azure legato vincolante, giusto? Per utilizzarlo, è necessario utilizzare un'infrastruttura Azure ServiceBus, ed hai bisogno di un account su Windows Azure per questo. Basta controllare ....
Per prima cosa, molto probabilmente necessario l'aggiornamento noreferrer Windows Azure Tools per Visual Studio 1.2 al fine di rendere questo lavoro con VS 2010.