我们有一个C# MVC应用程序,其中包含对端点的调用,其格式如下VerifyMe/12345/Password:Reset
在两个服务器上,都没有设置请求筛选,并且我们的应用程序没有httpRuntime
requestPathInvalidCharacters
的web.config条目,一个服务器(IIS 10)允许请求通过,另一个服务器(IIS 8)返回400 Bad Request
(由于冒号)
我找不到任何地方谈论有效字符之间的变化2个版本
是否还有其他因素可能使IIS 8服务器为该URL返回400?
1条答案
按热度按时间fnx2tebb1#
该问题的根本原因是冒号,在基于Windows(和DOS)的系统上,冒号是文件结构的保留字符,它会给您带来各种问题。
看起来ASP.net不允许在
"?"
前使用冒号,尽管它在URL中编码为%3A
。您可以引用此thread。