如何从Visual Studio将Web服务发布到IIS?

时间:2011-04-28 12:58:56

标签: web-services iis iis-7 publish

我在C#中编写了一个WCF Web服务。我最初是自托管它,然后决定在我的PC上本地运行的IIS上托管它。虽然服务正在运行,但部署过程有几个方面我不明白:

首先,在IIS中托管时此服务的URL与我在web.config中指定的URL不对应。我在那里指定了“http://localhost:8000/MyServices/OrderService”,这是我自我托管时使用的。现在我已部署到IIS,URL已变为“http://localhost/MyServices/OrderService”。为什么没有从我的配置文件中提取URL?

其次,为了托管Web服务,我在IIS中创建了一个新的网站(除了现有的“默认网站”)。我将物理路径设置为c:\ inetpub \ wwwroot(不知道这是否正确)并将其他参数保留为默认值。然后我将我的/ bin文件夹,我的.svc文件和我的web.config复制到此文件夹中。这相当于“虚拟目录”吗?

最后,直到(在IIS中)我选择“转换为应用程序”之前,该服务才起作用。为什么有必要选择“转换为应用程序”?

任何人都可以解释将Visual Studio中的简单Web服务发布到IIS中的正确步骤,或者指出一些好的文档以便我理解这个过程吗?

****编辑为原件***** 花了更多的时间研究这个,我发现了以下内容:

  • 当我在IIS中创建一个网站时,我给它一个c:\ inetpub \ wwwroot ....等的物理目录
  • 如果我从Visual Studio中“发布”,它所做的就是将所有必需的文件(如/ bin目录,web.config和.svc文件)复制到网站的物理目录中,即 - c:\的Inetpub \ wwwroot的...

您可以手动执行复制以达到相同的效果。

答案是在IIS上托管时完全忽略了baseAddress。

1 个答案:

答案 0 :(得分:14)

如果使用Visual Studio 2010,您可以右键单击该服务的项目,然后选择properties。然后选择Web标签。在Servers部分下,您可以配置网址。还有一个用于创建虚拟目录的按钮。