我正在构建一系列返回各种信息的MVC4 Web API。在大多数API中,我正在执行GET方法并传递完全限定的域名。
如果我传递一个短名称,API会按预期返回数据;但是,如果我将完全限定的域作为以“.com”结尾的ID传递,我会得到404.
在Visual Studio 2010中调试时,API工作正常;然而,一旦我“发布”内容,我开始获得404。我最初的预感是它与IIS有关;但是我无法指出确切的问题。
工作:/ controller / action / server_shortname
404:/controller/action/server.domain.com
任何指导都将不胜感激。感谢
答案 0 :(得分:0)
如果您使用的是.NET 4.0,则可以在web.config中使用它:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
除此之外,您还应确保以集成模式运行applicationPool。
还有一些其他帖子提到了同样的问题,根据您的配置,您可以在那里找到答案:
答案 1 :(得分:0)
.
在网址的路径部分中具有特殊含义,并由IIS解释为扩展分隔符。
如果您在IIS集成管道模式下运行,则可以将以下处理程序添加到<system.webServer>
节点:
<system.webServer>
<handlers>
...
<add
name="UrlRoutingHandler"
type="System.Web.Routing.UrlRoutingHandler, System.Web"
path="/api/*"
verb="*" />
</handlers>
</system.webServer>
您只需将path="/api/*"
调整为您配置要收听的API的端点。