【问题标题】:Errors when placing a site asp.net framework on iis在 iis 上放置站点 asp.net 框架时出错
【发布时间】:2020-05-09 13:37:01
【问题描述】:

我在asp.net上创建了一个简单的网站,一个框架,有标准的用户认证,也就是重新注册,但是我给它添加了我需要的字段,然后发送到sql server数据库,而不是本地数据库,和以前一样。

现在,当您出于某种原因尝试登录或注册时,首先会在地址栏中发出这样的请求:

/帐户/登录?RETURNURL =%2FAccount%2FLogin%3FReturnUrl%3D%252FAccount%252FLogin%253FReturnUrl%253D%25252FAccount%25252FLogin%25253FReturnUrl%25253D%2525252FAccount%2525252FLogin%2525253FReturnUrl%2525253D%252525252FAccount%252525252FLogin%252525253FReturnUrl%252525253D %25252525252Fackultull%25252525252Fackull%25252525252Fackull%25252525252Facturnull%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252Flogin%25252525252522Flogin%252525252525225252252525252525252525252525252525252525252525253Freturl%25

这不是整个查询,大约有 4000 个字符像这样重复。并且在 Opera 的页面上出现了这样的错误:

“ERR_TOO-MANY_REDIRECT”

如果你在一分钟后刷新页面,你会得到这个错误:

“错误请求 - 请求太长。HTTP 错误 400。请求标头的大小太长”

我在论坛某处找到了答案,需要补下

对于 Internet 信息服务 (IIS) 6.0 及更高版本,MaxFieldLength 和 MaxRequestBytes 注册表项位于以下子项中:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

我有点问这个。 但它仍然是一样的。 这是iis服务器日志:

135 400 - 请求长度 - 2020-01-23 04:20:40 ::1%0 12889 ::1%0 443 HTTP/2 GET

告诉我如何解决它?应该是允许长这样的要求吗?或者它是代码中的一个门框,请求不应该是这个大小?但这是自动创建的标准 Asp 注册。请帮我修复错误

【问题讨论】:

  • 您的登录页面是否也受到保护,并且只有登录用户才能访问?您应该在那里允许匿名请求。参考here
  • 您的登录页面正在重定向到自身并出现错误,然后重定向到登录页面......经过多次此类自我重定向后,您的请求变得非常大,并且您破坏了缓冲区。跨度>

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


【解决方案1】:

请发布您的代码和 IIS 身份验证配置。看起来就像您阻止了所有控制器的匿名访问,并且还为 /Account/Login 启用了表单身份验证。未启用 /Account/Login 的匿名身份验证。因此,当您的网站尝试访问 /Account/Login 时,您的应用程序将自行陷入循环。

所以最重要的是为 /Account/Login 启用匿名访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2020-06-21
    • 1970-01-01
    • 2014-06-15
    • 2010-09-09
    相关资源
    最近更新 更多