我知道这已经回答了几次,但没有一个解决方案适合我。我发布了我的ASP.NET MVC 3应用程序(它只是互联网模板,没有任何更改),看看我是否可以让它公开工作。但是,当我访问该网站时,它显示403错误。来自php / linux背景,我很困惑,不知道在哪里看。我只学习了大约8-9个月的.NET,之前我测试的所有内容都是通过VS2010在本地开发服务器上进行的。它几乎看起来像服务器不知道它应该是一个MVC应用程序或我必须改变我的路由。
无论如何,我检查确保服务器设置是.NET 4.任何帮助将不胜感激。
另外,它是使用arvixe的共享托管环境。
答案 0 :(得分:52)
对我来说,这就是诀窍(Mmerrell在Getting 404.0 error for ASP.NET MVC 3 app on IIS 7.0 / Windows Server 2008的原始答案)
你实际上只是提醒我,我需要解决这个问题 环境在这里。如果你的情况和我的情况一样,那就是了 简单的修复。
只需将以下内容添加到您的网络配置中:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
确保您已选择“ASP.Net 4.0”应用程序池,而不是为您的应用程序创建的应用程序池。 确保您的应用程序池使用“ApplicationPoolIdentity”而不是NetworkService。从根文件夹中删除NetworkService权限。你不需要它。 IIS具有内置标识(IIS_IUSRS)。
答案 1 :(得分:4)
403是禁止的错误。尝试检查部署文件夹的NTFS权限,确保Network Service
用户具有读取权限
此外,请检查IIS应用程序中的身份验证和授权机制:
<强>编辑:强>
.Net授权规则
答案 2 :(得分:4)
使用FTP发布将MVC 4 WebSite发布到远程服务器后,我遇到了同样的问题。最终为我工作的是在通过Visual Studio发布,登录到远程服务器上的IIS,找到已发布的目录 - &gt;右键单击 - &gt;转换为应用程序。
如果您无权访问服务器,不确定是否有办法在web.config / properties中指定此内容?
答案 3 :(得分:3)
1-验证您的应用程序是否在.NET 4.0下运行(您这样做了)
2-与托管公司核实它在托管计划上支持MVC 3框架。
3-(可行)Bin-Deploy您的MVC运行时库,以便您可以克服服务器上的任何要求。
更多bout bin-deploy您的ASP.NET MVC可以在这里找到:http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx
4-检查“网络服务”是否具有对您文件夹的适当访问权限。它基本上应该具有“读取”权限。
答案 4 :(得分:2)
不要忘记aspnet_regiis.exe -ir
。
答案 5 :(得分:1)
<handlers>
<add name="rewrite" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
</handlers>
请您的托管服务提供商将此处理程序添加到webconfig
答案 6 :(得分:0)
尝试将应用程序池的托管管道模式更改为“经典”而不是“集成”。 虽然它可能不是您所追求的最终结果(使用集成模式可能具有真正的优势),但至少它会指向正确的方向......如果它有效。