Erros WCF no VS 2010/.NET 4 Usando o aplicativo de publicação/inscrição de amostra do site Idesign

StackOverflow https://stackoverflow.com/questions/3033766

Pergunta

Estou tentando compilar/executar um amostra Aplicação WCF de Juval Lowy's local na rede Internet (Autor da programação WCF Services e fundador do Idesign). O aplicativo é um exemplo de um aplicativo de publicação/subscrição de 'luz de tráfego' que exige o uso Vs 2010/.net 4. Esta é a minha primeira tentativa de usar qualquer coisa que não seja o VS 2008/líquido 3.5.

Inicialmente, recebi o seguinte erro de ligação:

"Extensão de ligação à configuração 'System.Servicemodel/ Bindings/ netonewayRelaybinding' não foi possível encontrar."

Esse erro parecia resolvido alterando o arquivo .NET 4 Machine.Config, para incorporar as seguintes referências do arquivo .NET 2 Machine.config.

<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>

Infelizmente, a execução do aplicativo resulta no seguinte erro de segurança:

Ocorreu um erro Criando o manipulador da seção de configuração para o System.Servicemodel/Client: Esse conjunto não permite chamadores parcialmente confiáveis.
( Trafficlights TrafficController bin Debug TrafficController.vshost.exe.config Linha 4)

O código -fonte de amostra está disponível para download no seguinte link: http://www.idesign.net/idesign/desktopdefault.aspx?tabindex=-1&tabid=19&download=226

Sei que o código da Juval não está em culpa aqui e que deve ser algo que estou fazendo de errado com minha configuração VS 2010. Não consegui encontrar uma solução online. Alguém poderia me orientar na direção certa sobre a melhor forma de lidar com esse problema?

Foi útil?

Solução

Você está ciente de que o netOnewayRelayBinding Uma ligação relacionada ao Windows Azure está, certo? Para usá -lo, você precisa usar uma infraestrutura do Azure ServiceBus e precisa de uma conta no Windows Azure para isso. Apenas checando....

Por um lado, você provavelmente precisa do atualizado Ferramentas do Windows Azure para Visual Studio 1.2 Para fazer isso funcionar com o VS 2010.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top