配置WCF服务以在IIS 6上运行

时间:2011-06-02 13:58:25

标签: asp.net wcf iis-6 wcf-4

部署到生产环境后'我只收到404 - 找不到文件。

需要将服务配置为虚拟目录(/ v1)。 它有自己的应用程序池。

我按照http://www.jamesgoodfellow.com/blog/post/IIS-60---HTTP-404---File-not-found-Internet-Information-Services.aspx

启用了ASP .Net 4.0

我添加了通配符,并根据hosting .net 4.0 REST WCF service in IIS 6

删除了Windows集成安全性

它仍然不起作用......

这是我的web.config的ServiceModel部分:

    <system.serviceModel>
    <extensions>
        <behaviorExtensions>
            <add name="restHttpBehavior" type="--hidden for security purposes--, Version=0.8.0.0, Culture=neutral, PublicKeyToken=null"/>
        </behaviorExtensions>
    </extensions>
    <services>
        <service name="--hidden for security purposes--" behaviorConfiguration="MetadataBehavior">
            <host>
                <baseAddresses>
                    <add baseAddress="http://localhost/v1/api.svc"/>
                </baseAddresses>
            </host>

            <endpoint behaviorConfiguration="WebBehavior" binding="webHttpBinding" bindingConfiguration="restNoSSL" contract="--hidden for security purposes--"/>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        </service>
    </services>
    <behaviors>
        <endpointBehaviors>
            <behavior name="WebBehavior">
                <restHttpBehavior/>
            </behavior>
        </endpointBehaviors>
        <serviceBehaviors>
            <behavior name="MetadataBehavior">
                <serviceMetadata httpGetEnabled="true"/>
                <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <bindings>
        <webHttpBinding>

            <binding name="restNoSSL">
            </binding>
        </webHttpBinding>
    </bindings>
</system.serviceModel>

请帮助!!

2 个答案:

答案 0 :(得分:1)

原来,ISAPI过滤器实际上阻止了该服务。所以我删除了通配符,添加了Windows集成安全性 - 现在该网站正常运行。

答案 1 :(得分:1)

看到同样的问题,但对我来说这是因为ISAPI通配符使用了错误的ISAPI文件。

这些版本存在

64位.net 2.0 aspnet_isapi.dll

32位.net 2.0 aspnet_isapi.dll

64位.net 4.0 aspnet_isapi.dll

32位.net 4.0 aspnet_isapi.dll

32位.net 4.0 aspnet_isapi.dll可以应用,但仍允许我的网站工作。