Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VS 2010/.Net 4中的WCF错误,使用来自IDesign网站的发布/订阅示例应用程序_Wcf_Visual Studio 2010_Machine.config - Fatal编程技术网

VS 2010/.Net 4中的WCF错误,使用来自IDesign网站的发布/订阅示例应用程序

VS 2010/.Net 4中的WCF错误,使用来自IDesign网站的发布/订阅示例应用程序,wcf,visual-studio-2010,machine.config,Wcf,Visual Studio 2010,Machine.config,我正试图从Juval Lowy的网站(编程WCF服务的作者和IDesign的创始人)编译/运行一个示例WCF应用程序。该应用程序是发布/订阅“红绿灯”应用程序的一个示例,该应用程序需要使用VS 2010/.Net 4。这是我第一次尝试使用VS2008/NET3.5以外的任何东西 最初,我收到以下绑定错误: “配置绑定扩展 'system.serviceModel/bindings/ 无法创建netOnewayRelayBinding 找到了。” 通过修改.Net 4 machine.config

我正试图从Juval Lowy的网站(编程WCF服务的作者和IDesign的创始人)编译/运行一个示例WCF应用程序。该应用程序是发布/订阅“红绿灯”应用程序的一个示例,该应用程序需要使用VS 2010/.Net 4。这是我第一次尝试使用VS2008/NET3.5以外的任何东西

最初,我收到以下绑定错误:

“配置绑定扩展 'system.serviceModel/bindings/ 无法创建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>


我知道Juval的代码在这里没有错,这一定是我在VS2010配置中做错了什么。我一直无法在网上找到解决方案。有人能告诉我如何最好地处理这个问题吗?

您知道
netOnewayRelayBinding
是与Windows Azure相关的绑定,对吗?为了使用它,您需要使用Azure ServiceBus基础架构,并且需要在Windows Azure上为此提供一个帐户。只是检查一下


首先,你很可能需要更新版本,以便在VS 2010上使用。

Marc-那是不可能的-我不知道我需要一个Windows Azure上的帐户(有点尴尬地说)。正如我在电子邮件中提到的,这是我第一次涉足VS 2010,WCF在VS 2008中似乎并没有如此显著的“影响力”。我想是时候买一本2010年WCF参考书了。谢谢你的帮助,马克。Bill@Bill:我认为Juval也有一个版本的红绿灯应用程序,它可以与netTcpBinding或其他东西一起工作-你可以在局域网中本地处理,而无需Azure…@Bill:你只需添加对Microsoft.Servicebus.dll的引用,项目就会编译。对于大多数示例,您实际上并不需要Azure。此外,您还需要小心,因为大多数iDesign示例都包含ServiceModelEx的某些版本。如果您按错误的顺序解压下载,可能会出现一些问题。