茶底257 2025-07-11 10:45 采纳率: 50%
浏览 100

代码运行显示localhost 重定向你太多次。 尝试删除此网站的 Cookie ERR_TOO_MANY_REDIRECTS

刷新之后也不好使,把浏览器要清除的也清理了
C#代码为啥运行出来地址栏一直在无限重定向400
代码应该没问题是同事发我的,他说他就在iis发布了网站改了数据库密码就能跑了
我拿到代码没连数据库纯跑的时候页面也跑不出来,地址栏就显示无限重定向了
数据库连了也跑不出来
求佬们怎么解决

感觉是本地配置问题,但是又不知道哪里有问题

img

img

img

  • 写回答

6条回答 默认 最新

  • 檀越@新空间 2025-07-11 10:46
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    你遇到的 ERR_TOO_MANY_REDIRECTS 错误,通常是因为网站在运行过程中发生了无限重定向循环。这种情况常见于以下几种原因:


    ✅ 问题分析

    1. IIS 配置错误
    2. URL 重写规则(Rewrite)配置不当
    3. Cookie 或 Session 设置不正确
    4. Web.config 文件中的重定向逻辑异常
    5. 数据库连接失败导致页面跳转逻辑出错

    🔍 常见原因及解决方法

    1. 检查 IIS 应用程序池设置

    • 确保应用程序池使用的是 正确的 .NET CLR 版本(如 .NET 4.0 或更高)
    • 检查是否启用了 Integrated Mode(集成模式)
    • 确保应用程序池的身份验证设置正确(如使用 ApplicationPoolIdentity

    建议: 如果你同事能正常运行,对比你们的 IIS 配置。


    2. 检查 Web.config 文件

    web.config 是 C# 项目中控制 URL 重写、身份验证、安全策略等的重要文件。

    示例:检查是否有错误的 <rewrite> 规则

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect to HTTPS" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
    

    注意: 如果你的本地环境没有 HTTPS 配置,这个规则会导致无限重定向。

    修改建议(如果你不需要强制 HTTPS):

    <!-- 移除或注释掉强制 HTTPS 的规则 -->
    <!-- 
    <rule name="Redirect to HTTPS" stopProcessing="true">
        <match url="(.*)" />
        <conditions>
            <add input="{HTTPS}" pattern="^OFF$" />
        </conditions>
        <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
    </rule>
    -->
    

    3. 检查身份验证和 Cookie 设置

    如果应用使用了 Forms Authentication,但未正确配置 Cookie 或 Session,也可能导致重定向循环。

    示例:web.config 中的身份验证配置

    <authentication mode="Forms">
        <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>
    

    建议: 如果你没有登录页面,或者没有正确设置 loginUrl,可能导致无限重定向。


    4. 检查数据库连接字符串

    虽然你说“没连数据库也能跑”,但某些应用可能在启动时尝试连接数据库,如果连接失败,会触发重定向到错误页面或登录页。

    示例:检查 web.config 中的数据库连接字符串

    <connectionStrings>
        <add name="DefaultConnection" connectionString="Data Source=.;Initial Catalog=YourDB;User ID=youruser;Password=yourpassword;" providerName="System.Data.SqlClient" />
    </connectionStrings>
    

    建议: 如果你没有连接数据库,可以临时修改为一个无效的连接字符串,看看是否仍然发生重定向。


    5. 检查路由配置(如 MVC 路由)

    如果你使用的是 ASP.NET MVC 或 Web API,检查 RouteConfig.csStartup.cs 中的路由设置。

    示例:MVC 路由配置

    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
    

    注意: 如果你访问的 URL 不匹配任何路由,可能会被重定向到默认页面,甚至导致循环。


    🛠️ 解决步骤(有序列表)

    1. 检查 IIS 应用程序池设置

      • 确认 .NET CLR 版本与项目一致
      • 确保使用 Integrated Mode
      • 检查应用程序池身份验证设置
    2. 检查 Web.config 文件

      • 删除或注释掉强制 HTTPS 的重定向规则
      • 检查 Forms Authentication 配置
      • 确保没有错误的 URL 重写规则
    3. 检查数据库连接字符串

      • 如果未连接数据库,临时修改为无效连接测试
      • 确保数据库连接不会导致页面跳转
    4. 清除浏览器缓存和 Cookie

      • 使用无痕模式打开浏览器
      • 清除所有 Cookie 和缓存数据
    5. 检查路由配置(如 MVC)

      • 确保访问的 URL 匹配路由规则
      • 检查是否有默认页面配置
    6. 对比同事的 IIS 配置

      • 如果同事能正常运行,对比两者的 IIS 设置
      • 确保本地 IIS 配置与远程一致

    🧪 测试建议

    你可以尝试以下操作来快速定位问题:

    1. 打开浏览器,访问 http://localhost/YourApp
    2. 在地址栏输入 about:blank 后再刷新
    3. 使用 Chrome 开发者工具(F12)查看 Network 请求,看哪些请求在不断重定向

    ✅ 总结

    | 问题类型 | 原因 | 解决方案 | |----------|------|-----------| | IIS 配置错误 | 应用程序池设置错误 | 检查并同步 IIS 配置 | | URL 重写规则 | 强制 HTTPS 或错误规则 | 修改或删除相关规则 | | 身份验证 | Forms Authentication 配置错误 | 检查 loginUrl 和 Cookie 设置 | | 数据库连接 | 连接失败导致跳转 | 临时修改连接字符串测试 | | 路由配置 | URL 匹配错误 | 检查 MVC 路由配置 |


    如果你愿意提供部分代码(如 web.configRouteConfig.cs),我可以进一步帮你分析具体哪里出了问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月11日