2011-06-02 130 views
1

部署到生产环境后,我只收到404 - 找不到文件。将WCF服务配置为在IIS上运行6

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

我启用ASP .NET 4.0按http://www.jamesgoodfellow.com/blog/post/IIS-60---HTTP-404---File-not-found-Internet-Information-Services.aspx

我加入了外卡和删除Windows集成安全性为每hosting .net 4.0 REST WCF service in IIS 6

它仍然没有工作...

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

<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> 

请帮忙!!

回答

1

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

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可以应用,并仍然允许我的网站工作。