部署引用与WCF服务通信的类库的Web应用程序

时间:2011-01-28 14:04:46

标签: asp.net wcf class-library

我有一个独立的开发环境。在我的生产服务器上,我们主要托管Web应用程序,我们部署了Web项目的预编译版本。

在进行开发时,我在三个项目上工作。一个是WCF服务。二,是类库项目。该库具有调用WCF服务的类。第三,是一个消耗类库的Web项目。

最后两个项目属于一个VS解决方案。我在开发环境中托管wcf服务。此服务作为服务引用添加到我的类库中。

我无法想象一旦我将DLL(类库项目的输出)添加到我的Web项目后会发生什么,并且必须部署Web项目。在部署时,我必须更改服务引用(svc文件的url将更改,因为它必须指向生产wcf服务)。怎么去这个?将dll添加到Web项目时,我必须注意什么?

3 个答案:

答案 0 :(得分:4)

不要过分担心DLL。这将采用它在其中运行的应用程序的配置,无论是win表单,Web应用程序,网站还是Windows服务。因此,考虑到这一点,您添加了Web服务绑定的项目将包含一个app / web.config,其中包含一个system.service模型部分,您必须在任何使用该程序集的应用程序的配置文件中包含该部分并将使用网络服务。

要更改web.config

的system.servicemodel部分中的绑定
<client>
    <endpoint address="http://blahblah:8000/blah" binding="wsHttpBinding"
        bindingConfiguration="WSHttpBinding_Service1" contract="GenService.Service"
        name="WSHttpBinding_Service" />
</client>

我个人使用配置转换和发布配置文件来部署网站,以便不再设置web.config文件。所以我将拥有Web.Production.config

<system.serviceModel>
    <client>
        <endpoint name="WSHttpBinding_Service" address="http://production/blah" xdt:Locator="Match(name)" xdt:Transform="SetAttributes(address)" />
    </client>
</system.serviceModel>

指南在这里http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx

答案 1 :(得分:0)

只要在Web应用程序中向类库中添加引用,就会在将Web应用程序项目发布到Production时部署这两个dll。至于必须更改的WCF URL,我会在web.config文件中的AppSettings中添加URL作为键。

的Web.config:

<configuration>
   <appSettings>
      <add key="WCF_URL" value="http://url to wcf service"/>
   </appSettings>
//snip..
</configuration>

代码:

// Establish the proxy with the WCF Service that you added as a Web Reference in your solution
WCFService.<class> myWCFService= new WCFService.<class>();
// Check the web.config for the URL to WCF web service
myWCFService.Url = ConfigurationManager.AppSettings["WCF_URL"];

答案 2 :(得分:0)

首先应该知道的是,.dll将不会使用放置在库项目中的配置文件。 DLL将使用Web配置文件。所以你应该在那里配置WCF服务的URL。

只需将DLL配置文件中的(包含)信息复制粘贴到web.config即可。

最好的问候