什么解码我编码的哈希符号(%23)?
我们注意到有几台机器存在带有哈希参数的URL问题。
使用URL调试请求时:
http://domain.com/Entity(%23{number-here}
我们在global.asax
文件的Application_BeginRequest
方法中看到Url.OriginalString
的URL: http://domain.com/Entity(#23{number-here}
: Url.OriginalString
( Url.LocalPath
http://domain.com/Entity(#23{number-here}
Url.OriginalString
http://domain.com/Entity(#23{number-here}
, Url.LocalPath
有http://domain.com/Entity(
以及散列后的所有字符都在Url.Fragment
。
在运行Windows 8.1和IIS 8.5的计算机上运行完全相同的应用程序时,它按预期工作, Url.OrinalString
是http://domain.com/Entity(%23{number-here}
。
我在web.config
或IIS配置中的URL重写部分中看不到任何疑问。
这种行为可能是什么原因?
这是System.Web.dll中的错误。 它已在Windows 8.1上修复,但我们尚未在操作系统的下层版本上推出对System.Web.dll的修复。 当下一次可靠性更新发布时,我们正试图为所有支持的操作系统修复.NET 4.5.x.
这是旧操作系统的解决方法,直到错误修复被移植回来。 如果您可以轻松更改URL,请将可能包含哈希的术语放在查询字符串参数中,例如
http://domain.com/?entity=Entity(#23{number-here}