Мой HttpHandler не хочет создавать каталог в сети - PullRequest
1 голос
/ 25 ноября 2011

Я использую эту простую строку кода внутри моего HttpHandler:

Directory.CreateDirectory(@"\\srv-001\dev\folderToCreate\");

Я получаю UnauthoridezAccessException , сообщающую, что доступ к пути запрещен.

Отсюда я создаю небольшое приложение Dos на C #, делающее то же самое, и я смог создать папку.Итак, я подумал, что, возможно, IIS работает под другим пользователем, чем я.Я перешел на IIS и сам изменил пул приложений на Custom.Но, к сожалению, я получил то же исключение.

Я попытался создать папку Share на моем компьютере, и я могу создать каталог.Кроме того, при отладке я вижу, что System.Threading.Thread.CurrentPrincipal.Identity имеет свой AuthenticationType для "", IsAuthenticated для false и для имени "".

Итак, со всеми этими тестами я могу заключить, чтоHttpHandler, который получает файл, не может создать каталог из-за некоторого безопасного доступа.

Как получить доступ к моему HttpHandler для создания каталога (и файлов) в сетевой папке?

1 Ответ

0 голосов
/ 26 ноября 2011

На самом деле, я подумал еще об одной вещи, чтобы проверить.не только существует идентификация пула приложений, но также существует идентификация, связанная с анонимной аутентификацией.Если вы используете iis 7 / 7.5, вы должны увидеть значок аутентификации для веб-приложения и дважды щелкнуть по нему.Если выбрать анонимную аутентификацию и нажать кнопку «Изменить», откроется диалоговое окно, в котором вы сможете указать пользователя или пользователя пула приложений.Бьюсь об заклад, если вы выберете пользователя пула приложений, это все исправит.

Если вы используете iis 6, я не так отчетливо помню, но сделаю попытку.передо мной нет iis 6 для проверки, но я помню, что была кнопка анонимного доступа, которую вы можете нажать, чтобы вызвать диалоговое окно, где вы могли бы указать пользователя.не думаю, что у вас есть возможность использовать удостоверение пула приложений и вам нужно было явно указать учетную запись.

...