2013-05-16 112 views
0

我正在构建一系列返回各种信息的MVC4 Web API。在大多数API中,我正在执行GET方法并传递完全限定的域名。MVC4 404错误

如果我传递一个简短名称,API会按预期返回数据;然而,如果我通过一个完全合格的域名作为以“.com”结尾的ID,我会得到一个404.

当我在Visual Studio 2010中进行调试时,API工作正常;然而,一旦我“发布”了内容,我就开始获得404。我最初的预感是它与IIS有关。但是我一直没有能够指出确切的问题。

WORKS:/控制器/动作/ server_shortname

404:/controller/action/server.domain.com

任何指导,将不胜感激。由于

+0

你可以举一些例子,说明你的404请求吗?在这个例子中,你给你只是有控制器和行动,你没有通过域名 – Kenneth

+0

我更新了原始描述。让我知道你是否需要更多信息。谢谢 –

+1

呃。为什么你最终包含域名?这些点应该可能是urlencoded,因为它们会让IIS尝试查找名为“com”的文件扩展名 – jgauffin

回答

0

.具有特殊的意义URL的路径部分,并被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来听端点。