SecurityException в приложении ASP.net

У меня есть веб-приложение, которое запрашивает индекс Lucene, и оно прекрасно работает на сервере W2K3 в моей сети. Теперь я получил свой код Azure, поэтому я хотел проверить сервис, загружающий приложение. Чтобы сделать это, мне пришлось установить Vista (я сделал это на виртуальной машине), потому что Azure SDK не будет устанавливаться на XP.

Я создал свою облачную службу, добавил файлы из моего приложения, но когда я запускаю его (просто F5), я получаю исключение SecurityException, когда я вызываю Lucene для запроса индекса, говоря:

Приложение попыталось выполнить операцию, не разрешенную политикой безопасности. Чтобы предоставить этому приложению необходимые разрешения, обратитесь к системному администратору или измените уровень доверия приложения в файле конфигурации.

Я гуглил, и решения, которые я нашел, касаются изменения файла machine.config, что я не смогу сделать "в облаке".

Может ли кто-нибудь помочь в этом?

4 ответа

Решение

Хорошо, если кто-то сталкивается с такими же проблемами, это правильный ответ, который я получил с форума Azure:

Это связано с политикой доверия для Windows Azure CTP. Переменные среды TEMP и TMP доступны и настроены соответствующим образом. Однако System.IO.Path.GetTempPath и System.IO.GetTempFile не работают, так как для них требуются неограниченные разрешения среды. Я бы посоветовал вам связаться с разработчиками Lucene, чтобы узнать, смогут ли они изменить код, чтобы он правильно работал в средах со средним уровнем доверия.

Спасибо Дэниелу К. Вангу за ответ.

Я также нашел вопрос относительно моей той же самой проблемы и как, если был исправлен.
Вот ссылка: Lucene.Net не работает на моем хосте, потому что он вызывает GetTempPath (). Какая работа вокруг?

Вы можете изменить доверие к web.config, если это не запрещено в machine.config (который часто используется в виртуальном хостинге). внутри вашего дела и посмотрим, что произойдет.

Если вам не разрешено это делать, узнайте, можете ли вы получить контроль над GACd, поговорив со своим поставщиком. Если это не сработает, извините, но вам не повезло. Иногда вы можете найти обходные пути, которые не требуют полного доверия для определенного метода, но если сторонняя DLL-библиотека требует этого, вы не можете ничего сделать

Не сделали этого, но не возможно ли иметь настольную версию Live Operating Environment? Это может показаться хорошим началом для устранения неполадок.

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