【发布时间】:2011-04-28 12:58:55
【问题描述】:
我用 C# 编写了一个 WCF Web 服务。我最初是自行托管它,然后决定将它托管在我 PC 上本地运行的 IIS 上。在服务运行时,部署过程中有几个方面我不明白:
首先,托管在 IIS 中的此服务的 URL 与我在 web.config 中指定的不对应。我在那里指定了“http://localhost:8000/MyServices/OrderService”,这在我自托管时使用。现在我已经部署到 IIS,URL 变成了“http://localhost/MyServices/OrderService”。为什么没有从我的配置文件中提取 URL?
其次,为了托管 Web 服务,我在 IIS 中创建了一个新网站(除了现有的“默认网站”之外)。我将物理路径设置为 c:\inetpub\wwwroot (不知道这是否正确)并将其他参数保留为默认值。然后我将我的 /bin 文件夹、我的 .svc 文件和我的 web.config 复制到这个文件夹中。这相当于“虚拟目录”吗?
最后,直到(在 IIS 中)我选择了“转换为应用程序”,该服务才起作用。为什么必须选择“转换为应用程序”?
谁能解释将简单的 Web 服务从 Visual Studio 发布到 IIS 的正确过程,或者指出一些好的文档以便我理解该过程?
****编辑为原始文件***** 花了更多时间研究这个问题后,我发现了以下内容:
- 当我在 IIS 中创建网站时,我给它一个物理目录 c:\inetpub\wwwroot....等
- 如果我随后从 Visual Studio 中“发布”,它所做的只是将所有需要的文件(如 /bin 目录、web.config 和 .svc 文件)复制到网站的物理目录中,即 - c:\ inetpub\wwwroot...
您可以手动执行复制以达到相同的效果。
- 最后,关于我的服务的 URL 与我的 web.config 文件的 baseAddress 部分不对应,这是answered on stackoverflow previously。
答案是在 IIS 上托管时完全忽略了 baseAddress。
【问题讨论】:
标签: web-services iis iis-7 publish