加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-2 – Plus()在MVC中的参数引起404在IIS 7.0

发布时间:2020-12-15 19:10:47 所属栏目:asp.Net 来源:网络整理
导读:我有一个MVC路由,给我在运行IIS的临时服务器地狱。我在本地运行Visual Studio 2010的开发服务器。 这里是一个示例网址,实际上在我的开发盒上工作: Root/CPUBoards/Full+SizeResultsServer Error404 - File or directory not found.The resource you are l
我有一个MVC路由,给我在运行IIS的临时服务器地狱。我在本地运行Visual Studio 2010的开发服务器。

这里是一个示例网址,实际上在我的开发盒上工作:

Root/CPUBoards/Full+Size

Results
Server Error404 - File or directory not found.
The resource you are looking for might have been removed,had its name changed,or is temporarily unavailable.

这是我看到的完整的行为。

本地主机:

Root/CPUBoards/Full Size - Resolves
Root/CPUBoards/Full%20Size - Resolves
Root/CPUBoards/Full+Size - Resolves

使用IIS 7.0的分段服务器:

Root/CPUBoards/Full Size - Resolves
Root/CPUBoards/Full%20Size - Resolves
Root/CPUBoards/Full+Size - 404 Not Found Error.

有任何想法吗?我需要使用编码版本有几个原因…不会浪费你的时间与他们。

HttpUtility.UrlEncode(“Full Size”)返回带有plus sing … Full Size的版本。这在我的dev盒子上,但不在临时服务器上。我宁愿只是让它在服务器上工作,因为我已经有一切测试和本地工作,但我不知道从哪里开始查找服务器配置,让它的行为方式相同。

谢谢!

解决方法

只有在application / x-www-form-urlencoded数据(例如URL的查询字符串部分)中作为空格的特殊含义。

在URL的其他部分,如路径组件,字面意思是加号。所以将Full Size解析为未编码的名称Full Size不应在任何地方工作。

路径组件中空间的唯一正确形式是。 (当你输入一个实际的空间时,仍然可以工作,因为浏览器发现错误并为你修正错误。)也可以在form-URL编码的数据中使用,所以通常最安全的是使用它。

可悲的是HttpUtility.UrlEncode是误导性的。它在其输出而不是生成,所以它真的是一个形式URL编码器,而不是一个标准的URL编码器。不幸的是,我不知道一个ASP.NET函数“真正的URL编码”字符串在路径中使用,所以我可以推荐在编码后做一个字符串替换。

或者,避免在路径部分中使用空格,例如。通过用 – 替换它们。将“插入”标题插入到URL中是很常见的,将它们缩减为简单的字母数字和“安全”标点符号,以避免使用丑陋的%nn序列填充URL。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读