【问题标题】:Manually creating virtual directory while deploying WCF service.部署 WCF 服务时手动创建虚拟目录。
【发布时间】:2009-10-07 06:41:31
【问题描述】:

我有 WCF 服务文件夹,比如说:“TestService”,它在 TestServide 文件夹下包含以下文件夹和文件:

TestService 文件夹包含: 1.bin(文件夹) 2.Config(文件夹) 3.TestService.svc(文件) 4.WebConfig(文件)

当我去 InetMgr 并尝试浏览 TestService.svc 文件时,wcf 服务会成功打开: 小路: https://localhost/TestService/TestService.svc

问题

我在 bin 文件夹下剪切并粘贴了两个文件( TestService.svc 和 WebConfig )。现在文件夹层级变化如下:

TestService 文件夹包含: 1.bin(文件夹)包含 a).TestService.svc(文件) b).WebConfig(文件)

2.Config(文件夹)

现在我再次进入 bin 文件夹并打开 TestService.svc 以打开 iexplorer 它没有打开并给出以下错误。

路径:https://localhost/TestService/bin/TestService.svc 错误:找不到页面 技术信息(支持人员) 背景: 您试图从不允许执行程序的目录中执行 CGI、ISAPI 或其他可执行程序。 更多信息:

我是否需要更改任何内容才能使我的 svc 文件正常工作??

【问题讨论】:

    标签: asp.net wcf deployment


    【解决方案1】:

    如果您的 web.config 和 TestService.svc 现在位于 TestService/bin,您需要创建一个指向该位置的 IIS Web 应用程序。

    您不能让 IIS Web 应用程序(虚拟目录)指向“TestService”,然后将 web.config 和 TestService.svc 放在该 IIS Web 应用程序的子目录中。

    IIS Web 应用程序必须指向 web.config 所在的物理路径,并且 *.svc 文件也必须在同一目录中(不是子目录!)。

    马克

    【讨论】:

    • 我可以更改现有 wcf 服务应用程序的路径,使其指向 bin 文件夹吗?我通过转到 TestService (Propeties-> Web) 的属性页面来做到这一点。在“使用本地 IIS Web 服务器”上,我将路径更改为 localhost/TestServicelocalhost/TestService/bin 。但在这种情况下,虚拟目录会创建不同的层次结构。
    • 是的,您可以 - 您需要为此使用 IIS 管理工具。在 IIS Mgmt Tool 中,您可以查看您的虚拟目录/IIS webapps 并更改它们的属性,包括它们指向的物理路径。
    • 我已经通过IIS管理工具映射了虚拟目录,但是当我在子目录中移动svc文件时,还是会报错。
    • 如果 svc 文件在 TestService 文件夹下,它运行成功,但是当我将 svc 文件移动到 bin 文件夹中时,我无法 svc 页面出现错误(页面无法显示)
    • *.svc 文件必须位于 IIS webapp 指向的目录中 - 它不能位于子目录中!
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 2010-10-28
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多