0

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

如果我传递一个短名称,API 会按预期返回数据;但是,如果我将完全限定的域作为以“.com”结尾的 ID 传递,我会得到 404。

当我在 Visual Studio 2010 中调试时,API 工作正常;但是,一旦我“发布”了内容,我就会开始获得 404。我最初的预感是它与 IIS 有关。但是我无法确定确切的问题。

作品:/controller/action/server_shortname

404:/控制器/动作/server.domain.com

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

4

2 回答 2

0

如果您使用的是 .NET 4.0,您可以在 web.config 中使用它:

<httpRuntime relaxedUrlToFileSystemMapping="true" />

除此之外,您还应该确保您在集成模式下运行您的应用程序池。

还有一些其他帖子提到了同样的问题,根据您的配置,您可以在那里找到答案:

于 2013-05-16T07:34:50.617 回答
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 以侦听的端点。

于 2013-05-16T08:29:06.113 回答