Ошибки WCF в VS 2010 / .NET 4, используя пример приложения Pramue Publish / Подписаться с веб-сайта Idesign
-
27-09-2019 - |
Вопрос
Я пытаюсь компилировать / запустить образец WCF приложение от Ювалый Лоу Веб-сайт (Автор программирования WCF Услуги и основателя Idesign). Приложение является примером приложения «Опубликовать / подписаться», которое требует использования VS 2010 / .NET 4. Отказ Это моя первая попытка использования чего-либо, кроме VS 2008 / NET 3.5.
Первоначально я получил следующую ошибку связывания:
«Система расширения связывания конфигурации». System.Servicemodel / Привязки / NetOnewayreLayBinding 'не могут быть найдены ».
Эта ошибка, по-видимому, была решена путем изменений в соответствии с файлом .NET 4 Machine.config, чтобы включить следующие ссылки на файл .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>
К сожалению, выполнение приложений приводит к следующей ошибке безопасности:
Произошла ошибка создания обработчика секции конфигурации для System.ServiceModel / Client: что сборка не позволяет частично доверенным абонентам.
( Frachlights TradingController Bin Debug TransfortController.vshost.exe.config 4)
Исходный код образца доступен для загрузки по следующей ссылке: http://www.idesign.net/ideign/desktopdefault.aspx?tabindex=-1&tabid=19&download=226.
Я знаю, что код Juval здесь не виноват здесь, и что это должно быть что-то, что я делаю не так с помощью моей конфигурации VS 2010. Я не смог найти решение в Интернете. Может ли кто-нибудь, пожалуйста, утешите меня в правильном направлении, как лучше иметь дело с этим вопросом?
Решение
Вы знаете, что netOnewayRelayBinding
Является ли связывание Windows Azure, верно? Чтобы использовать его, вам необходимо использовать инфраструктуру Azure ServiceBus, и вам нужна учетная запись в Windows Azure для этого. Просто проверка....
Для одной вещи, вам скорее всего, понадобится обновлен Инструменты Windows Azure для Visual Studio 1.2 Для того, чтобы сделать эту работу с VS 2010.