【问题标题】:ASP.NET MVC in Medium Trust中信任的 ASP.NET MVC
【发布时间】:2010-10-26 01:33:08
【问题描述】:

只是想为 ASP.NET MVC 设置我的开发环境,已经启动了一个空白的 ASP.NET MVC 项目,并在我的 web.config 中放置了以下内容:<trust level="Medium" originUrl=""/>

运行项目然后导致以下异常:

描述:应用程序试图执行安全策略不允许的操作。要授予此应用所需的权限,请联系您的系统管理员或在配置文件中更改应用的信任级别。

异常详细信息:System.Security.SecurityException:请求“System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限失败。

如果可能的话,我想开发我的应用以获得中等信任,因为我无法选择托管它的位置,并且存在信任级别可能存在某种限制的可能性。

【问题讨论】:

  • 我们有机会看到调用堆栈的其余部分吗?这将让我们看到哪个库正在请求反射权限 - 因为我认为默认的 ASP.NET MVC 堆栈不需要这样 - 但是像 StructureMap 或 NHibernate 这样的东西可能会这样做:stackoverflow.com/questions/784666/…
  • 我会审查它,但我肯定不会使用 StructureMap 或 NHibernat。这是 VS 2008 和 NET MVC 1.0. 的全新安装,带有一个全新的 MVC 项目。

标签: c# asp.net-mvc medium-trust


【解决方案1】:

当前版本的 ASP.NET MVC 仅支持<trust level="Full" /> - 参考this answer

【讨论】:

    【解决方案2】:

    我无法在我的机器上重现此异常。你应该可以bin deploy ASP.Net MVC in medium trust。我已经在我的主机和 Godaddy 上成功完成了它。您使用的是 MVC 1.0 吗?您是否更改或添加了对中等信任设置的限制,可能在继承的 web.config 或 machine.config 文件中?

    【讨论】:

    • 感谢您的回复,本。我没有对默认值 MVC 1.0 进行任何更改。运行 VS Web 服务器时出现异常。 IIS下我还没试过。
    【解决方案3】:

    我的网站也出现了类似的错误。它在我的本地机器上运行良好,但会在我的虚拟主机上引发权限错误。我实际上只是尝试将我的 web.config 设置为...

    <trust level="Full" />
    

    对我来说效果很好。我不认为它会起作用,但它确实起作用了。

    【讨论】:

    • Codette,我正在强制我的应用程序在中等信任度下工作,因为我想将其用作我的开发目标。这样我的应用程序就可以在限制性托管环境中运行。
    • 嗯,这取决于你想从你的网站上做什么,这可能是不可能的。例如,在我的网站中,我使用的是 HttpWebRequest 对象,如果不在我的虚拟主机上使用“完全”信任级别,我什至无法创建它。
    • 好像是这样。 .NET MVC 大量使用反射,这需要超过中等信任。事实证明,无论如何,我要托管的平台很可能在完全信任的情况下运行。这里有一些很好的信息:mvchosting.asphostcentral.com/post/…
    • 我不敢相信我也拥有 godaddy.com 共享主机,通过将 放入 web.config 我能够运行我的 MVC5 应用程序。
    猜你喜欢
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多