我将旧的.NET WCF服务转换为Web API 2
为了保持向后兼容性,我已将RoutePrefixAttribute应用于我的控制器,如下所示:
在我尝试发布我的服务并通过IIS访问它之前,一切都进展顺利
当我通过localhost运行我的服务(从Visual Studio调试)并通过Postman发出请求时,一切都很好,我得到了预期的响应:
但是,在将站点发布到IIS后,设置主机条目并尝试访问同一端点:
我收到404未找到:
我做了一些游戏,并决定删除" .svc"来自我的Controller的RoutePrefixAttribute。瞧,我现在可以通过IIS点击我的终端了:
所以我的问题是:Web API 2不支持" .svc"甚至可能是他们路线上的时期?有没有人遇到类似的东西,找到了合理的解决方法?
由于
答案 0 :(得分:1)
我的问题是Kiran Challa指出的。我必须将以下行添加到我的system.webServer处理程序:
<system.webServer>
<handlers>
<add name="ApiURIs-ISAPI-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>