2011-04-28 93 views
26

我已经用C#编写了WCF Web服务。我最初自己托管它,然后决定将它托管在我的PC上本地运行的IIS上。虽然服务正在运行,但我不明白部署过程的几个方面:如何将Visual Studio中的Web Service发布到IIS中?

首先,在IIS中托管时此服务的URL与我在web.config中指定的内容不对应。我在那里指定了“http://localhost:8000/MyServices/OrderService”,这在我自行托管时使用。现在我已经部署到IIS,URL已变为“http://localhost/MyServices/OrderService”。为什么URL不能从我的配置文件中找到?其次,为了托管Web服务,我在IIS中创建了一个新的Web站点(除了现有的“默认Web站点”外)。我将物理路径设置为c:\ inetpub \ wwwroot(不知道这是否正确)并将其他参数保留为默认值。然后,我将我的/ bin文件夹,我的.svc文件和我的web.config复制到此文件夹中。这相当于一个'虚拟目录'吗?

最后,该服务没有工作,直到(在IIS内)我选择'转换为应用程序'。为什么需要选择“转换为应用程序”?

任何人都可以解释什么是正确的过程是从Visual Studio发布到IIS的简单的Web服务,或指向我的一些很好的文档,所以我可以理解的过程?

****编辑原始***** 有花更多的时间寻找到这一点,我已经找到了以下内容:

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

您可以手动执行复制以获得相同的效果。

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

回答

14

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

+0

我试图通过VS 2012托管一个Web服务,这对我有帮助。 – voddy 2014-03-18 00:59:45

+0

使用VS2013也能完成这项工作 – Andez 2014-05-31 12:16:52

相关问题