我有一个C#Web应用程序,在VisualStudio托管时运行良好。
当我在IIS上托管它时,指向我的CSS样式表的链接会返回404错误。
基本上:
http://hostname/Sitename/default.aspx
成为
http://hostname/Sitename/(S(ubd3fhzfs04ebb1qzfsjlsse))/default.aspx
我不知道可能会发生什么变化,但这种情况在几周前发布之后就开始发生了。
我尝试删除网站文件夹并重新发布。
我还有两个托管的其他应用程序也是通过VS发布的,它们的URL是正常的,即
http://hostname/Sitename/default.aspx
据我所知,web.configs和IIS设置对于所有站点都是相同的。
答案 0 :(得分:1)
该URL包含会话cookie ID,它是由无cookie会话引起的(Cookie被禁用,自动检测启动,或者您明确设置无Cookie会话,或者它是由特定于设备的ASP.NET配置引起的)。可以通过更改会话设置来简单地修复它。但是,我还会将我的静态文件引用修复为相对而不是绝对,因此它们不会在不同的设置中导致404错误。无Cookie的URL由ASP.NET透明处理,因此只有当您使用硬编码的绝对URL时,它们才会自行导致404错误,这无论如何都是不好的做法。