免责声明:我的ASP.Net技能有限
我有几个网站,我从目前的托管转移到Mosso托管服务。当我尝试转移其中一个网站时,我收到错误“System.Security.SecurityException:该程序集不允许部分信任的调用者。”,这似乎与Mosso在ASP.Net的Medium Trust上运行这一事实有关。应用程序和网站中的代码似乎需要完全信任。
不幸的是,我无法访问该应用的完整源代码,并且原始开发人员不可用。移植这些网站有什么简单的解决方法吗?我尝试在web.config中添加但是没有用。
我不认为要求Mosso调整安全级别是一种选择,因为当我问他们时他们已经拒绝了。
有人有什么想法吗?
答案 0 :(得分:1)
你的集会是否有名的?它会调用强名称程序集吗?
您应该将'AllowPartiallyTrustedCallers`属性应用于程序集。有关此属性的更多信息是available here。
来自文档:
默认情况下,强名称程序集 没有明确适用于此 在程序集级别允许的属性 部分受信任的代码可以使用它 只能由其他程序集调用 获得完全信任的人 安全政策。这个限制是 通过放置LinkDemand强制执行 对每个公众或受保护的FullTrust 每个公开访问的方法 程序集中的类。那些装配 意图被部分调用 可信代码可以声明他们的意图 通过使用 AllowPartiallyTrustedCallersAttribute程序。
有关详细信息,请参阅此MSDN article。
修改强>:
一些信息证实了我怀疑APTCA属性是解决问题的可能方法:
https://support.isqsolutions.com/article.aspx?id=10334
http://bloggingabout.net/blogs/rick/archive/2006/04/07/11929.aspx
答案 1 :(得分:0)
很抱歉,但除非他们允许您设置信任级别,否则您可能会遇到大问题。你可以看看这里。 Professional ASP.NET 2.0 Security, Membership, and Role Management
几乎完全相同的事情发生在我身上,除了我的托管公司在我的服务器上运行了几年之后改变了他们的信任政策。最后,我不得不放弃并移至DiscountASP,因为他们在我的congfig文件中覆盖了<trust level="Full" />
。
这是我原来的问题。 ASP.NET WebPermission Security Exception
祝你好运答案 2 :(得分:0)
我知道这是旧的,但我想我会添加一些可能有用的东西。 Mosso对中等信任的转变也给我们带来了一些问题。
我们使用BlogEngine.NET并为其后端访问MySQL。我们在bin目录中有MySQL dll,这导致了中等信任的问题。一旦Mosso将一个MySQL dll添加到GAC,我们就能够成功使用它。
显然,我不知道你的具体细节以及你想做什么,但如果它与MySQL有关,请告诉我。