ASP.NET应用在GoDaddy部署后跳转返回302状态码求助
ASP.NET应用在GoDaddy部署后跳登录页(302)的解决办法
检查Forms认证的Cookie配置
打开web.config,看看<authentication>节点,GoDaddy环境大概率要明确指定domain属性,比如:<authentication mode="Forms"> <forms loginUrl="~/Account/Login" name=".ASPXAUTH" domain="你的域名.com" path="/" /> </authentication>如果GoDaddy强制HTTPS,记得把
requireSSL设为true:requireSSL="true",不然Cookie可能无法正常传递。排查URL重写和HTTPS强制规则
GoDaddy可能自动开启HTTPS重写,但规则配置不当会破坏认证流程。检查web.config里的<rewrite>节点,确保重写规则没问题:<rewrite> <rules> <rule name="HTTP转HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite>重点确认重写后的域名和原请求一致,跨域会导致Cookie失效,直接触发登录跳转。
调整Session状态配置
GoDaddy的共享主机对InProc模式的Session有限制,要么改成StateServer/SQLServer模式,要么调整<sessionState>的属性:<sessionState mode="InProc" timeout="20" cookieSameSite="Lax" />要是用了分布式Session,得确保连接字符串和权限配置都正确。
核对页面授权规则
检查web.config里的<authorization>节点,别把不需要登录的页面误设成需要认证:<location path="目标页面.aspx"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>同时看看页面代码里有没有误加
[Authorize]特性,这个特性会强制触发登录跳转。检查GoDaddy主机的专属设置
- 登录GoDaddy控制面板,确认应用的.NET版本和本地开发环境完全一致(比如都是.NET Framework 4.8或者.NET 6)
- 查看应用程序池设置,必须启用集成模式,而且身份验证(匿名、Forms)要和项目配置匹配
- 确认主机的URL重写模块已经启用,没有冲突的自定义规则
找出请求中断的具体原因
打开ASP.NET的详细错误日志,在web.config里添加这段配置:<system.web> <customErrors mode="Off" /> <compilation debug="true" /> </system.web>然后去GoDaddy控制面板的“日志”选项里查看主机错误日志,能找到请求未执行完成的具体问题。
内容的提问来源于stack exchange,提问作者Kavya
相关产品推荐
相关产品推荐

