我将在VS Express for Web 2013中运行的ASP.NET应用程序部署到新创建的服务器(Windows Server 2008 R2,IIS 7.5)。 浏览主页会产生404错误。详细的错误信息:
模块:IIS Web Core
通知:MapRequestHandler
处理程序:StaticFile
错误代码:0x80070002
请求的网址:http://example.com/Account/Login?ReturnUrl=%2Fdefault.aspx
物理路径:C:\ example \ Account \ Login
登录方法:匿名
登录用户:匿名
当然,物理路径C:\ example \ Account \ Login不存在;它实际上是c:\ example \ Account \ Login.aspx。
我的猜测是问题是处理程序是StaticFile,但我该如何修复呢?
答案 0 :(得分:0)
检查请求网址,它没有.aspx 扩展
请求的网址: http://example.com/Account/的登录强>?RETURNURL =%2Fdefault.aspx
它似乎重定向到登录页面,也许你的登录页面的web.config中有一个错误的值,它必须是login.aspx,而不是登录
它使用静态文件处理程序,因为没有aspx扩展名。
<强>更新强>
将login.aspx放在root中。 将web.config调整为如下所示:
你拥有的是
<location path="Account/Login">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
它看起来应该是这样的
<system.web>
<authentication mode="Forms">
<forms loginUrl="Logon.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
<authorization></authorization>
</system.web>
以下链接可能对您有所帮助: Forms Authentication
答案 1 :(得分:0)
我最初的猜测是正确的。需要一个修补程序才能在IIS 7.5中启用对无扩展名URL的支持。有关详细信息,请参阅https://support.microsoft.com/en-us/kb/980368上的Microsoft知识库文章。