IIS7 .NET 3.5上的错误请求错误400

时间:2010-08-22 23:11:25

标签: c# asp.net-mvc .net-3.5 iis-7

我在IIS7上遇到错误请求错误400。我在URL字符串中编码了特殊字符。我的网址看起来像这样(不喜欢%26):

http://www.myjobs.com/a/q-Barnes+%26+Noble

如果我在.NET 4.0上运行,这将是一个简单的修复,但我在机架式云上,只能在IIS7 .NET 3.5上运行。

如果我在IIS7 .NET 4.0上,这就是我在web.config中使用的内容:

requestPathInvalidCharacters=""

在IIS7和.NET 3.5上运行时还有哪些其他选项?

2 个答案:

答案 0 :(得分:0)

您可以提出这样的请求的唯一方法是更改​​注册表。 对于以32位模式运行的IIS,请添加以下DWORD键并将其值设置为1 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET \ VerificationCompatibility

如果您在64位模式下运行IIS,请添加以下DWORD键并将其值设置为1 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\ ASP.NET \ VerificationCompatibility

不确定您的托管环境是否会授予您访问权限的权限。我在IIS 7.5上测试了它并且能够使用如下编码的URL向/Barnes& Noo / default.aspx发出请求:Response.Redirect(Server.UrlEncode(“Barnes& Noble”)+“/ default.aspx” );

答案 1 :(得分:0)

为什么要将特殊字符编码到URL中?

为什么不将它们全部转换为更友好的SEO形式,只有字母数字字符和破折号,并在您的数据库中存储该特殊形式。或者,更简单的是,在URL中包含ID并使用后者只是为了使其具有人类可读性和SEO友好性:

e.g。 www.myjobs.com/a/1234/q-Barnes-and-noble

这种方法也意味着您可以稍后更改编码(可能会为alpha映射添加一些新的特殊字符)而不会有任何404.