如何在internet上发布WCF服务(托管在wind服务中)

本文关键字:服务 wind WCF internet | 更新日期: 2023-09-27 18:10:37

我的笔记本电脑上有一个windows服务,上面有一个WCF服务。我想在我的ASP上使用这些服务。. NET网站,这是在外部的ASP。网络服务器。

你能告诉我怎么做吗?

需要一个特定的笔记本电脑配置吗?我应该配置什么?

和绑定,什么类型是合适的?. .现在,我有:

  <service behaviorConfiguration="WcfServices.InfoBehavior" name="MyProgram.WcfServices.Info.Info">
    <endpoint address="" binding="wsHttpBinding" contract="MyProgram.WcfServices.Info.IInfo">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8732/Info/" />
      </baseAddresses>
    </host>
  </service>

更新:现在,我的客户端应用程序还在我的笔记本电脑上(它还没有发布)…这是我的客户端代码:

<client>
  <endpoint address="http://localhost:8732/Info/" binding="wsHttpBinding"
    bindingConfiguration="WSHttpBinding_IInfo" contract="ServiceInfo.IInfo"
    name="WSHttpBinding_IInfo">
    <identity>
      <dns value="localhost" />
    </identity>
  </endpoint>
</client>

我不知道,什么绑定使用…我的笔记本电脑应该更改哪些端口和哪些设置?

如何在internet上发布WCF服务(托管在wind服务中)

除非你的笔记本电脑有自己的固定IP地址暴露在外部(最不可能),我想你会发现很难直接做到这一点。

你可以考虑使用Azure服务总线来代理消息交换:我相信这是解决访问托管在非恒定IP地址或防火墙/NAT后面的服务问题的一种方法。

或者你可以考虑改变你的设计,把事情反过来。也就是说,当它连接并运行时,您的笔记本电脑服务连接到托管在ASP上的服务。NET盒子,通过双工绑定,使用当前服务契约作为回调契约。

如果你的笔记本电脑上有一个通过ServiceHost托管的WCF服务,你需要在你的ASP中复制该配置。网网络。配置文件,以及添加一个"服务"。

您应该将localhost更改为您的笔记本电脑的真实外部IP地址,如果您的路由器在家中没有防火墙,它可以工作。