使用Azure服务总线连接IIS部署的WCF服务

时间:2015-11-26 14:21:51

标签: wcf azure service azureservicebus bus

我正在尝试将本地WCF服务与天蓝色服务总线连接,现在我已经浏览了文档,他们只有sf托管的wcf服务的示例,但是当服务托管在IIS服务器上时,你所拥有的只是您可以使用该服务的URL。我已经设置了我的IIS服务器进行预加载并始终运行为true,但我不知道如何连接服务。 所以我想问一下,如果你们中有人已经这样做,指出我正确的方向,或者至少指出一些可行的文件,我可以从中学习如何做到这一点。

谢谢。

1 个答案:

答案 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包。
测试客户端可以是示例中的简单控制台应用程序。 对于像我这样天蓝色的初学者,不要担心如果标签点亮蓝色而不存在它会起作用。保持冷静并发展:)