【发布时间】:2011-01-07 09:19:02
【问题描述】:
我有一个 WCF 服务在本地运行,由机器 A 上的 Windows 服务托管。
我在机器 B 上的 IIS 中托管了一个 ASP.NET 应用程序。
我的问题是,如果我通过机器 A 上的浏览器运行 ASP.NET 应用程序,它是否能够使用本地 WCF 服务?
【问题讨论】:
标签: asp.net wcf windows-services
我有一个 WCF 服务在本地运行,由机器 A 上的 Windows 服务托管。
我在机器 B 上的 IIS 中托管了一个 ASP.NET 应用程序。
我的问题是,如果我通过机器 A 上的浏览器运行 ASP.NET 应用程序,它是否能够使用本地 WCF 服务?
【问题讨论】:
标签: asp.net wcf windows-services
只要页面中使用的服务地址指向机器A就可以了。
【讨论】:
是的,只要你的配置有效,服务在哪台服务器上使用都没有关系。
是的 - 客户端都必须使用相同的配置 - 您基本上需要指定“WCF 的 ABC” - 地址、绑定(可能还有绑定配置)和合同 - 您的服务的 WHERE、HOW 和 WHAT .
您可以使用此方法在服务器和客户端之间共享大量配置(尤其是绑定配置):外部化配置的某些部分。
在你的服务器中,有类似的东西:
<system.serviceModel>
<bindings configSource="bindings.config" />
</system.serviceModel>
然后在您的 bindings.config 文件中,定义:
<bindings>
<basicHttpBinding>
<binding name="BasicNoSecurity">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
这样,您可以将该文件 bindings.config 复制到客户端,并从客户端的配置文件中引用它 - 共享相同的信息并确保它在通信的两端都是相同且最新的。
这也适用于<system.serviceModel> 下的任何其他小节(如行为、扩展等)。
【讨论】: