如何在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>
我不知道,什么绑定使用…我的笔记本电脑应该更改哪些端口和哪些设置?
除非你的笔记本电脑有自己的固定IP地址暴露在外部(最不可能),我想你会发现很难直接做到这一点。
你可以考虑使用Azure服务总线来代理消息交换:我相信这是解决访问托管在非恒定IP地址或防火墙/NAT后面的服务问题的一种方法。
或者你可以考虑改变你的设计,把事情反过来。也就是说,当它连接并运行时,您的笔记本电脑服务连接到托管在ASP上的服务。NET盒子,通过双工绑定,使用当前服务契约作为回调契约。
如果你的笔记本电脑上有一个通过ServiceHost
托管的WCF服务,你需要在你的ASP中复制该配置。网网络。配置文件,以及添加一个"服务"。
您应该将localhost
更改为您的笔记本电脑的真实外部IP地址,如果您的路由器在家中没有防火墙,它可以工作。