找不到具有选定值的资源-WebAPI

时间:2018-10-23 08:20:17

标签: c# asp.net asp.net-web-api

我已经在我的Web api上设置了路由api / Exchange / Groups / Members / {samAccountName},并且可以正常运行

但是,如果 samAccountName 的值包含措辞“ prn。”,它将返回找不到资源

示例

http://localhost:4483/api/Exchange/Groups/Members/prn.agency1

http://localhost:4483/api/Exchange/Groups/Members/prn.agency2

http://localhost:4483/api/Exchange/Groups/Members/prn.agency3

我不确定哪里错了。这是我的代码段

.caption-text {
     align:left
 }    

有什么主意吗?

2 个答案:

答案 0 :(得分:0)

问题出在您的samAccountName格式中-它包含点,IIS将其解释为文件扩展名。 IIS尝试查找文件类型为*.agency1agency2agency3)的处理程序,找不到它并引发错误。

您应该更改格式以排除点,例如将其更改为破折号/下划线,或者在web.config中启用此参数

<configuration>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />

有关runAllManagedModulesForAllRequests标志的更多信息和缺点,请参见此博客文章:https://weblog.west-wind.com/posts/2012/Oct/25/Caveats-with-the-runAllManagedModulesForAllRequests-in-IIS-78

答案 1 :(得分:0)

在web.config中,添加

<system.web>
   <httpRuntime relaxedUrlToFileSystemMapping="true" />
</system.web>

here解释了更多细节。