我目前正在开发一个Web API,如果将FQDN传递给API,它必须返回服务器列表或单个服务器。
路线是:
"api/Servers/{fqdn}"
当我在这样的URL上从REST客户端执行GET时:
GET api/Servers/hostname.domain.com
IIS返回404未找到。
当我执行没有“。”的GET时。在URL参数中:
GET api/Servers/hostname_domain_com
它成功路由到我的API控制器。
当我收到404错误页面时,它是IIS 8错误页面。这让我相信当有“。”时在IIS中甚至没有将它传递给MVC管道的URL中,并且我的代码中没有执行。可能是因为IIS正在尝试为请求找到另一个处理程序,因为它看起来像是在请求“.com”文件扩展名。但这只是我的假设。
以前有没有人经历过这种情况,如果有,你是如何解决它的?
答案 0 :(得分:1)
在Web.config中的<modules runAllManagedModulesForAllRequests ="true"/>
下添加<system.webServer>
。
答案 1 :(得分:0)
我认为你需要在将url传输到服务器之前对其进行编码。有一个javascript函数urlencode。你可以查一下。