2010-01-20 48 views
0

我有一个WCF服务托管ASP.NET应用程序消耗WCF服务在本地运行一个Windows服务在机器A.托管ASP.NET,WCF:在本地窗口服务

我有一个ASP.NET应用程序托管在机器B上的IIS中。

我的问题是,如果我通过机器A上的浏览器运行ASP.NET应用程序,它是否能够使用本地WCF服务?

回答

1

是的,只要您的配置有效,使用服务的服务器在哪里并不重要。

是的 - 客户端将都必须使用相同的配置 - 基本上需要指定“ABC的WCF” - 地址,绑定(可能绑定配置)和合同 - 在哪里,如何和什么是你的服务。

您可以使用此方法在服务器和客户端之间共享大量配置 - 特别是绑定配置:将配置的某些部分外部化。

在你的服务器上,有这样的事:

<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>(如行为,扩展等)下的任何其他小节。

2

只要页面中使用的服务地址指向机器A,你应该没问题。

+0

另一个问题,我们将不得不将WCF配置存储在web.config中,这是否意味着所有的Web客户端都必须共享相同的配置?目标是让许多客户端都使用此设置运行。我只是不太清楚如何处理这种情况下的配置。 – Andrew 2010-01-20 17:32:15

+0

您可以在web.config文件中存储多个绑定等。 – taylonr 2010-01-20 20:41:17