1

我在尝试浏览 Cassini 3.5.0.2 上的中等信任 ASP.NET MVC 应用程序(使用 Linq-to-SQL)时收到以下异常:

Could not load file or assembly 'Cassini, Version=3.5.0.2, Culture=neutral, PublicKeyToken=da0fefd60d522a7d'
or one of its dependencies. Failed to grant permission to execute. (Exception from HRESULT: 0x80131418)

有一个内部例外:

Execution permission cannot be acquired.

Stack trace:
at System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset,
    PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission)
at System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset,
    PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission)

相同的应用程序适用于 IIS7 和内部 VS2008 Web 服务器。Cassini 与不使用 Linq-to-SQL 的 ASP.NET MVC 应用程序一起工作没有任何问题。

ASP.NET MVC 应用程序和 Linq-to-SQL 存储库项目都已[assembly: System.Security.AllowPartiallyTrustedCallers]应用,以便在中等信任下工作。

有人知道这个问题吗?

编辑

异常从以下行引发Server.cs

return appManager.CreateObject(appId, hostType, virtualPath, physicalPath, false);
4

1 回答 1

4

[ http://blogs.msdn.com/dmitryr/archive/2009/04/23/cassini-support-for-friendly-urls-routing.aspx#9855758]

不幸的是,这是单 EXE Cassini 的副作用。在工作应用程序域中,Cassini EXE 被视为不受信任的代码。

要使其在中等信任下工作,您需要修改中等信任定义(以允许由您的密钥签名的程序集获得完全信任),或者像以前的版本一样将 Cassini 放入 GAC。

谢谢,

德米特里

于 2009-08-02T19:45:53.440 回答