MVC4 404错误

时间:2013-05-16 07:14:06

标签: asp.net-mvc asp.net-mvc-4

我正在构建一系列返回各种信息的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

任何指导都将不胜感激。感谢

2 个答案:

答案 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的端点。