中信任的 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 共享主机,通过将以上是关于中信任的 ASP.NET MVC的主要内容,如果未能解决你的问题,请参考以下文章
使用 jscript 和控制器操作将数据添加到使用 MVC ASP.net 的数据库
如何在 MVC ASP.NET 中的手机号码前添加默认(默认为浏览器国家)国家代码?