中信任的 ASP.NET MVC

Posted

技术标签:

【中文标题】中信任的 ASP.NET MVC【英文标题】:ASP.NET MVC in Medium Trust 【发布时间】: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 这样的东西可能会这样做:***.com/questions/784666/… 我会审查它,但我肯定不会使用 StructureMap 或 NHibernat。这是 VS 2008 和 NET MVC 1.0. 的全新安装,带有一个全新的 MVC 项目。 【参考方案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 应用程序。

以上是关于中信任的 ASP.NET MVC的主要内容,如果未能解决你的问题,请参考以下文章

MVC asp.net 从网络文件夹加载图像

使用 jscript 和控制器操作将数据添加到使用 MVC ASP.net 的数据库

如何在 MVC ASP.NET 中的手机号码前添加默认(默认为浏览器国家)国家代码?

配置 antiforgerytoken 单次使用 mvc asp.net

我如何根据 mvc asp.net 中的登录用户切换视图

在 MVC ASP.Net 中将插件添加到部分视图选择列表