【问题标题】:Forbidden to browse WCF svc file?禁止浏览 WCF svc 文件?
【发布时间】:2010-09-23 15:38:33
【问题描述】:

我正在使用 VS2010 + C# + .Net 4.0 + IIS 7.5 + Windows 7。当我在 IIS 中为 WCF 项目打开一个 svc 文件(在 IIS 管理器中,右键单击 svc 文件并选择浏览)时,有一个像这样的错误,有什么想法吗?

This type of page is not served. 
Description: The type of page you have requested is not served because it has been explicitly forbidden.  The extension '.svc' may be incorrect.   Please review the URL below and make sure that it is spelled correctly.

这是我使用的web.config文件的内容,对吗?

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <staticContent>
            <remove fileExtension=".svc" />
        </staticContent>
        <handlers>
            <remove name="svc-ISAPI-2.0" />
            <remove name="svc-Integrated" />
            <add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
        </handlers>
    </system.webServer>
</configuration>

【问题讨论】:

    标签: c# .net wcf visual-studio-2010 iis-7


    【解决方案1】:

    您可能必须在 Visual Studio 命令提示符中启动命令 servicemodelreg –ia

    如果它不起作用,请检查您是否安装了“WCF http 激活”功能(添加/删除程序 - 打开或关闭 Windows 功能 - Microsoft .Net 3.5.1)。

    更新 1:您的应用程序可能托管在 .NET 2.0 应用程序池下。转到 IIS 管理器并检查基本设置...链接。单击选择按钮,您将看到您使用的是哪个选项。将其更改为使用 .NET 4.0

    更新 2:您的 web.config 文件似乎不完整。我建议您使用WCF Configuration Editor 工具配置您的服务。启动它(确保您使用的是该工具的 .NET 4 版本)并打开您的 web.config 文件。创建服务配置和服务端点配置,然后保存。

    【讨论】:

    • 谢谢!我应该在 C:\Windows\Microsoft.NET\Framework\v4.0.30319 下运行 servicemodelreg 吗?还是在 C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation 下?
    • 我尝试了您的解决方案,但遇到了一个新问题 => stackoverflow.com/questions/3776493/… 我很困惑为什么会出现有关加载 3.0 服务模型错误的错误。我的代码是为 .Net 4.0 构建的。
    • 我也怀疑 web.config 不正确。我已经发布了我在原始帖子中使用的 web.config,有什么想法吗?
    • 这是完整的 web.config 吗?如果是,您缺少整个 WCF 配置部分 system.serviceModel,请检查另一个更新
    • 配置应放在根应用程序(不是网站)目录中。例如。如果您在 IIS 管理器中使用“添加应用程序”添加它 - 这是应用程序的根目录。
    【解决方案2】:

    可能是 IIS 上的 mime 类型设置不正确,请尝试使用 aspnet_regiis 工具。如果做不到这一点,我建议在 iis 的虚拟目录中添加一个 mimetype,以便 .NET 运行时处理 .svc 文件。

    【讨论】:

    • 谢谢!我应该使用哪些选项运行 aspnet_regiis?我应该在 .Net 4.0 下运行 aspnet_regiis,对吗?
    • 我尝试了您的解决方案,但遇到了一个新问题 => stackoverflow.com/questions/3776493/… 我很困惑为什么会出现有关加载 3.0 服务模型错误的错误。我的代码是为 .Net 4.0 构建的。
    • 我也怀疑 web.config 不正确。我已经发布了我在原始帖子中使用的 web.config,有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2014-10-14
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 2012-12-22
    • 2020-07-27
    相关资源
    最近更新 更多