Исключения Кассини в приложении ASP.NET MVC со средним доверием, использующем Linq-to-SQL - PullRequest
1 голос
/ 02 августа 2009

Я получаю следующее исключение, пытаясь просмотреть приложение ASP.NET MVC со средним доверием (используя Linq-to-SQL) на Cassini 3.5.0.2:

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. Cassini работает без проблем с приложением ASP.NET MVC, которое не использует Linq-to-SQL.

Как для приложения ASP.NET MVC, так и для проекта репозитория Linq-to-SQL применяется [assembly: System.Security.AllowPartiallyTrustedCallers] для работы со средним доверием.

Кто-нибудь знает об этой проблеме?

EDIT

В этой строке выдается исключение из Server.cs:

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

1 Ответ

4 голосов
/ 02 августа 2009

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

К сожалению, это побочный эффект Cassini с одним EXE. В рабочем домене приложения Cassini EXE рассматривается как недоверенный код.

Чтобы заставить его работать со средним доверием, вам нужно либо повозиться с определением среднего доверия (чтобы сборки, подписанные вашим ключом, получить полное доверие), либо вернуться к переводу Cassini в GAC, как в предыдущих версиях.

Спасибо

Дмитрий

...