2013-05-16 126 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來聽端點。