Произошло исключение SecurityException, запрос на разрешение типа 'System.Security.Permissions.FileIOPermission, mscorlib'
В этой строке я получаю следующее исключение:
using (Stream reader = File.Open(m_inputFile, FileMode.Open))
Исключение:
The message is: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
Это происходит в надстройке Excel, работающей в ExcelDNA, однако происходит сбой, как только XLL для Excel помещается на сетевой диск.
Как я могу позволить полные разрешения для чтения с локальных дисков, поскольку я нахожусь в защищенной сети?
1 ответ
Вероятно, это связано с настройками безопасности по умолчанию в.NET 2.0, которые предоставляют ограниченные разрешения для кода, выполняемого по сети.
Первым шагом является гарантия того, что вы используете последнюю версию Excel-DNA - несколько лет назад произошли некоторые изменения, связанные с безопасностью установки AppDomain, которые могут иметь значение.
Еще одно исправление, которое вы можете попробовать - перенастроить вашу надстройку на.NET 4.0. Вам, вероятно, даже не нужно перекомпилировать, просто измените файл.dna, чтобы начать с:
<DnaLibrary RuntimeVersion="v4.0" Name="..." >
Если вы хотите придерживаться среды выполнения.NET 2.0, вы можете изменить разрешения, используя caspol
полезность. В этом посте есть несколько подробных инструкций для группы Google: https://groups.google.com/d/msg/exceldna/Csls-_bjDp0/G3HlxFkDefQJ