我们有一个从3.5升级的ASP.NET 4.0 Web应用程序。不幸的是,当用户尝试通过http://xxx.abc.com/访问网址时,用户会获得/login.aspx?ReturnUrl=%2f。
据我所知,这似乎是.NET 4.0和IIS7上的行为。这导致负载均衡器出现问题,因为它返回 302状态代码。有些原因 负载均衡器已配置为查找http 200状态代码。
我们是否可以通过任何方式修复ASP.NET 4.0的行为,以便在用户点击http://xxx.abc.com/时显示login.aspx而无需重定向?
我在下面尝试了这个但是没有用:
<system.webServer>
<defaultDocument>
<files>
<add value="Login.aspx" />
</files>
</defaultDocument>
</system.webServer>
感谢。
答案 0 :(得分:4)
这不是.NET 4 / IIS 7的行为,它是表单身份验证的行为。似乎认证模块首先运行,并在默认文档模块获得机会之前触发重定向。以下是我建议的解决方法:
<allow users="?" />
标记在您网站的根目录上设置location
。 我使用此重写规则从根URL返回login.aspx
,状态代码为200:
<rewrite>
<rules>
<rule name="RewriteURL1" stopProcessing="true">
<match url="" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="login.aspx" />
</rule>
</rules>
</rewrite>