我用的是Windows7,IIS7.5,.NET 4.5。
(对于Windows8、IIS8.5、.NET 4.5,这是可行的)。
使用URL执行GET请求:
http://my.host/api1/MyEntity('%2311282')问题是,当它到达服务器端代码时,%23字符已经被解码为'#‘,并且Uri对象认为它是一个片段字符。Win8计算机收到字符%23未被触及的url。
尝试:
1)使用此配置设置
<httpRuntime targetFramework="4.5" relaxedUrlToFileSystemMapping="true" />2)在URL末尾添加'/‘
http://my.host/api1/MyEntity('%2311282')/3)卸载url rewrite 2模块,然后重新安装。我还尝试在web.config中注释模块的重写部分。
为什么我想要复制windows8的行为--而不是解码URL。有什么想法吗?
发布于 2014-02-01 03:22:16
看一看重写模块。
一些信息here:保留原始URL
URL重写模块将原始请求的URL路径保留在以下服务器变量中:
HTTP_X_ORIGINAL_URL -此服务器变量包含解码格式的原始URL;UNENCODED_URL -此服务器变量包含与客户端请求的原始URL完全相同的原始URL,并保留所有原始编码。
希望这能有所帮助。
https://stackoverflow.com/questions/21413393
复制相似问题