.Net FileIOPermission & ApplicationData - PullRequest
2 голосов
/ 04 декабря 2008

Я получаю исключение FileIOPermssion, возникающее при попытке создать папку в Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData) на некоторых компьютерах. Я установил, что на данном компьютере работает антивирус, работающий в той или иной форме, но я не смог связаться с его отделом ИТ, чтобы выяснить, что именно они используют.

Кто-нибудь еще сталкивался с такой проблемой? Я некоторое время пробовал гуглить и ничего не придумал. Что мне нужно сделать, чтобы гарантировать права на запись в ApplicationData?

Ответы [ 3 ]

1 голос
/ 04 декабря 2008

Я получил другой ответ на другом форуме, который мог бы быть ответом, но я должен сначала проверить это. По сути, они предложили, чтобы пользователь мог установить приложение в сетевой папке, а не прямо на жесткий диск, что означало бы, что приложение не будет работать с полным доверием. Рекомендуемое исправление состояло в том, чтобы использовать изолированное хранилище вместо ApplicationData, если это имело место.

Я проверю, является ли это проблемой, и обновлю ее, если ее исправит использование изолированного хранилища.

0 голосов
/ 05 декабря 2008

Проблема была определенно вызвана запуском приложения с сетевого диска. Это помещает приложение в частичное доверие, которое предотвращает запись в каталог ApplicationData. Предполагалось, что изолированное хранилище поможет обойти это, но мне тоже не повезло. Выдает ту же ошибку, что и при непосредственном использовании других команд ввода-вывода файла.

Единственное, что ДОЛЖНО работать, - это установить платформу .NET 3.5, которая изменяет уровень доверия по умолчанию для приложений, работающих на сетевых ресурсах.

0 голосов
/ 04 декабря 2008

Vista или XP. Или, что еще важнее, проблем на XP нет, но есть проблемы на Vista? Возможно, вы столкнулись с UAC, который более строг в отношении проверки прав доступа, необходимых для различных действий. Я столкнулся с подобной проблемой с программой установки принтера, которую я написал - отлично работает на XP, но требует строгого именования и некоторых настроек GPO при запуске с общего сетевого ресурса в Vista.

РЕДАКТИРОВАТЬ: Поскольку это не является проблемой, вы можете проверить, включено ли перенаправление папок и, если да, то, как оно настроено. Это может быть проблема с записью на сетевой ресурс, а не на локальный диск. Или, возможно, существует объект групповой политики, который блокирует доступ на запись в папку ApplicationData - или установку программного обеспечения в целом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...