代码之家  ›  专栏  ›  技术社区  ›  alexandrul

使用Linq to SQL的中信任ASP.NET MVC应用程序上的cassini异常

  •  1
  • alexandrul  · 技术社区  · 17 年前

    我在尝试浏览Cassini 3.5.0.2上的Medium Trust 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使用ASP.NET MVC应用程序时没有任何问题,因为它不使用Linq to SQL。

    ASP.NET MVC应用程序和LINQ to SQL存储库项目都有 [assembly: System.Security.AllowPartiallyTrustedCallers] 应用于中等信任的工作。

    有人知道这个问题吗?

    编辑

    在此行中引发了异常 Server.cs :

    return appManager.CreateObject(appId, hostType, virtualPath, physicalPath, false);
    
    1 回复  |  直到 17 年前
        1
  •  4
  •   dmitry    17 年前

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

    不幸的是,这是一个单一的exe卡西尼副作用。在辅助应用程序域中,cassini exe被视为不受信任的代码。

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

    谢谢,

    德米特里