Выполнить функцию DLL в ASP.Net Bin не работает, II7 - PullRequest
0 голосов
/ 25 апреля 2010

Я разрабатываю приложение удаленного управления, в котором клиент (aspx-страница в браузере) может запросить у сервера «запустить блокнот» (для целей тестирования, для реальной жизни, выключения лампочки и т. Д.). Поэтому я создал dll с простой функцией для запуска блокнота (на стороне сервера) и поместил эту dll в корневую папку bin.

Работало нормально, когда страница aspx запущена на сервере разработки ASP.NET (запущена из Visual Studio). Но когда я тестировал ту же страницу aspx в браузере FireFox, она не работала (запускала блокнот), даже несмотря на то, что она вызывала ту же функцию (я прошел через отладчик).

Это проблема с разрешением? Как мне настроить это в диспетчере IIS или, что еще лучше, в web.config?

Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 25 апреля 2010

Да, это похоже на проблему с разрешением.

Пул приложений в IIS 7, под которым работает ваш сайт, вероятно, использует идентификатор по умолчанию, который является наиболее ограничительным. Вы можете изменить удостоверение в диспетчере IIS, щелкнув правой кнопкой мыши пул приложений (вероятно, называемый DefaultAppPool) и выбрав Дополнительные параметры. Оттуда измените значение Identity на Local Service или Network Service. Если ни одна из этих функций не работает, то ее локальная система должна позволить вашей странице работать.

Я предполагаю, что интегрированный веб-сервер Visual Studio работает в контексте учетной записи, с которой вы вошли на компьютере, что, вероятно, имеет гораздо больше прав.

0 голосов
/ 25 апреля 2010

Когда вы говорите:

это не сработало (запустите блокнот)

Вы имели в виду исключение или не открыли окно блокнота. Если бы это была проблема с разрешениями, я бы ожидал, что вы получите исключение. Крис прав, когда говорит:

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

и

Я предполагаю, что Visual Studio интегрирована веб-сервер работает в контексте учетная запись, в которой вы вошли в машина, которая, вероятно, имеет много больше прав.

и если это проблема с разрешениями, он прав. Однако пользователь, под которым вы работаете (когда не отлаживаете в Visual Studio), скорее всего, не сможет получить доступ к рабочему столу вошедшего в систему пользователя. Возможно, вам стоит попробовать свой тест с приложением, которому не нужно взаимодействовать с рабочим столом.

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