【发布时间】:2020-06-22 10:30:48
【问题描述】:
在 ASP.NET 应用程序中,我们有很多(想想,几十个)这样的控制器类:
[RoutePrefix("some/thing/1.0")]
public class SomeController : ApiController
{
[HttpGet]
[Route("")]
public string GetInfo()
{
return "hello world";
}
[HttpPut]
[Route("")]
public void StoreInfo(string info)
{
// ...
}
}
这已经好几个星期了,没有任何问题。我们可以这样称呼这些端点:
GET https://myWebApp/client/some/thing/1.0
现在,随着昨天的夜间构建,这已停止工作。突然间,我们只能访问那些带有斜杠的 URL,即
GET https://myWebApp/client/some/thing/1.0/
这也适用于参数化查询:
GET https://myWebApp/client/some/thing/1.0?x=42
不再起作用了,但是
GET https://myWebApp/client/some/thing/1.0/?x=42
会。
由于上一个工作构建仅在一天前,我已经扫描了我们的源代码管理的提交历史,并并排比较了构建包。我找不到任何似乎与此问题相关的更改。
此外,这肯定与我们的应用程序中的一些变化有关:在将我的二进制文件更新为昨天构建的二进制文件后,我可以在应用程序的本地副本上重现该问题。 (请注意,今天早上已经创建了另一个构建,但问题仍然存在。所以,并不是昨天的构建在某种程度上被破坏了;任何改变似乎都是永久性的。)
可能会发生什么变化,我还能去哪里寻找呢?
或者,更主动地询问:
我在哪里可以改变这种行为?
【问题讨论】:
标签: asp.net url routing iis-10