【问题标题】:ASP.NET deployment issues (Not working in release mode)ASP.NET 部署问题(在发布模式下不工作)
【发布时间】:2011-05-21 10:14:44
【问题描述】:

我有一个 asp.net mvc 2 应用程序,当从 Visual Studio 以发布或调试模式运行时,它工作正常。当应用程序以发布模式部署到远程或本地 IIS 7 服务器时,它不起作用。

显示的错误如下:

HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容。

现在这有点误导,但是我已经弄清楚为什么会显示此错误消息。

  1. 应用程序没有 default.aspx,因为在 IIS7+ 上运行 mvc 应用程序时不需要它

  2. 我正在使用属性路由,这在下面的链接中进行了说明,它使用反射来构建 RouteTable。询问程序集时,无法访问属性,因此不会填充 RouteTable

  3. 由于没有路由,Web 服务器会尝试列出目录内容,但它没有这样做的权限。

属性路由:

http://itcloud.codeplex.com/

ASP.NET MVC Routing Via Method Attributes

现在我的问题是是什么阻止了应用程序使用反射来询问程序集?

大部落

【问题讨论】:

    标签: asp.net-mvc deployment iis-7 release


    【解决方案1】:

    缺少 ReflectionPermission 可能是一个原因。许多托管公司过度限制权限。反射是一个经常有问题的问题。 GoDaddy 和 RackSpace 都对其进行了限制。

    您的应用程序运行的信任级别是多少?您使用的是哪个托管服务提供商?您有 RDP 访问权限吗?

    【讨论】:

    • 1.该应用程序以完全信任(内部)运行 2. 我有 RDP 访问权限 3. 我正在使用 www.ServerIntellect.com 4. 专用服务器。
    • 如何使用反射权限属性?
    • 完全相信你不应该需要它,而是here is some info on it。您是否有错误日志,或者有任何方法可以确定在 App_Start 期间是否引发了异常?
    • 这就是我的想法,但就目前而言,这是应用程序的行为。我正在看这篇文章。读起来很有趣。
    • 我已通过安装 32 位 .NET 4.0 框架 (aspnet_regiis -i) 并将应用程序设置为启用 32 位应用程序解决了该问题。见文章stackoverflow.com/questions/2659544/…。在 IIS 7+ 和 windows server 2008 x64 上运行的 .NET 框架 64 位模式似乎存在问题
    猜你喜欢
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 2022-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多