我正在尝试将本地WCF服务与天蓝色服务总线连接,现在我已经浏览了文档,他们只有sf托管的wcf服务的示例,但是当服务托管在IIS服务器上时,你所拥有的只是您可以使用该服务的URL。我已经设置了我的IIS服务器进行预加载并始终运行为true,但我不知道如何连接服务。 所以我想问一下,如果你们中有人已经这样做,指出我正确的方向,或者至少指出一些可行的文件,我可以从中学习如何做到这一点。
谢谢。
答案 0 :(得分:0)
好吧,我知道这是怎么样的,回答我自己的问题,但是昨天当我问起我正把我的笔记本电脑扔到窗外时:)。
令人恼火的是,微软和azure社区提供的教程只是在你在控制台应用程序中托管wcf服务时解决问题,而不是IIS,原则上应该是相同但由于某些原因不是。因此,这是Web配置的一部分,用于连接企业IIS上部署的内部部署wcf服务,这在公司网络外部是不可见的。
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="ServiceBusBehavior">
<transportClientEndpointBehavior>
<tokenProvider>
<!--Endpoint=sb://bus-weather.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=e/JdrCvjy/l8nuYYCHXdfssfsfsfsfsfsfsM=-->
<sharedAccessSignature keyName="RootManageSharedAccessKey" key="e/JdrCvjy/l8nuYYCHXdfssfsfsfsfsfsfsM=" />
</tokenProvider>
</transportClientEndpointBehavior>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
<services>
<service name="connectServiceBus.GetWeather">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="DefaultBinding" contract="connectServiceBus.IGetWeather"/>
<endpoint address="sb://bus-weather.servicebus.windows.net/weatherSRV" binding="netTcpRelayBinding" behaviorConfiguration="ServiceBusBehavior" contract="connectServiceBus.IGetWeather"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="DefaultBinding" />
</basicHttpBinding>
<netTcpRelayBinding>
<binding name="ServiceBusBinding" />
</netTcpRelayBinding>
</bindings>
只需在wcf服务的网络配置的<system.serviceModel>
标记中添加上述代码段即可完成,请注意您必须安装服务总线NuGet包。
测试客户端可以是示例中的简单控制台应用程序。
对于像我这样天蓝色的初学者,不要担心如果标签点亮蓝色而不存在它会起作用。保持冷静并发展:)