部署到生产环境后'我只收到404 - 找不到文件。
需要将服务配置为虚拟目录(/ v1)。 它有自己的应用程序池。
启用了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>
请帮助!!
答案 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可以应用,但仍允许我的网站工作。