【发布时间】:2011-03-16 22:43:33
【问题描述】:
我正在尝试将一些 dll 加载到 ASP.NET MVC 应用程序中的 MEF DirectoryCatalog 中:
var catalog = new DirectoryCatalog(HttpRuntime.BinDirectory, "Toptable.Mobile.*.dll");
当我通过 Cassini Web 服务器(即 F5)运行应用程序时,一切运行正常,但是当托管在 IIS(7) 中时,出现以下异常:
[SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
System.Security.CodeAccessPermission.Demand() +54
System.IO.Path.GetFullPath(String path) +193
System.ComponentModel.Composition.Hosting.DirectoryCatalog.GetFullPath(String path) +267
System.ComponentModel.Composition.Hosting.DirectoryCatalog.Initialize(String path, String searchPattern) +144
System.ComponentModel.Composition.Hosting.DirectoryCatalog..ctor(String path, String searchPattern) +166
Toptable.Mobile.MvcApplication.Application_Start() in C:\Dev\Toptable\Toptable.Mobile\Toptable.Mobile.Web\Global.asax.cs:74
应用程序的 .NET 信任级别设置为站点和全局的“完整”,并且我已将 web.config (system.web/trust) 中的信任级别设置为完整。没有什么可能导致它的想法。有什么建议吗?
【问题讨论】:
-
您的应用程序肯定没有完全信任。这不可能是文件夹安全问题,因为您甚至没有被授予 FileIOPermission。