Произошло исключение 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

Другие вопросы по тегам