Я использую код от этой страницы этого ответа .
Я правильно запускаю свое приложение в среде разработки.Когда я публиковал localhost с unc сетевой ресурс
с помощью caspol:
caspol.exe -m -ag 1 -url "file: //// \ MyMachine \ MyProject *" FullTrust
Я также работаю должным образом.
Я работаю с unc share, потому что мое приложение развернуто в рабочей среде с unc и это "каким-то образом" общий хостинг.
При развертывании в производство я получил:
System.TypeInitializationException: The type initializer for 'Microsoft.Reporting.WebForms.ReportViewer' threw an exception. ---> System.IO.FileLoadException: Loading this assembly would produce a different grant set from other instances. (Exception from HRESULT: 0x80131401) at Microsoft.Reporting.WebForms.ReportViewer..cctor()
Итак, проблема, похоже, связана с разрешениями, поэтому я пытался и продолжаю пытаться, но безуспешно:
AppDomainSetup setup = new AppDomainSetup { ApplicationBase = AppDomain.CurrentDomain.BaseDirectory, LoaderOptimization = LoaderOptimization.NotSpecified };
setup.SetCompatibilitySwitches(new[] { "NetFx40_LegacySecurityPolicy" });
var permissionSet = new PermissionSet(System.Security.Permissions.PermissionState.None);
permissionSet.AddPermission(new FileIOPermission(FileIOPermissionAccess.AllAccess, new System.Uri(typeof(FullTrustReportviewer).Assembly.CodeBase).AbsolutePath));
permissionSet.AddPermission(new FileIOPermission(FileIOPermissionAccess.AllAccess, @"C:\myproject\packages\Microsoft.ReportViewer.Runtime.WebForms.12.0.2402.15\lib\Microsoft.ReportViewer.WebForms.dll"));
permissionSet.AddPermission(new FileIOPermission(FileIOPermissionAccess.AllAccess, @"C:\myproject\bin\Microsoft.ReportViewer.WebForms.dll"));
Microsoft.ReportViewer.WebForms.dll настроен на «копирование локальных»
Но в данный момент он дает: System.Security.SecurityException: 'Request failed.'
Так что вопрос, как я уже догадался, связан с набором разрешений, как я могу разрешить ReportViewerразрешение dlls.
Если это не так, любая помощь приветствуется.