ASP.Net не может видеть общую папку - PullRequest
1 голос
/ 16 декабря 2008

Я написал новое приложение в сети, в которой раньше не работал, и столкнулся с проблемой.

Если у меня есть следующий код C #:

FileStream fs = File.Create(@"\\MyServer\MyShare\testing.txt");
fs.Close();

В консольном приложении этот код выполняется правильно.

В приложении ASP.Net я получаю эту ошибку: Ошибка входа: неизвестное имя пользователя или неверный пароль.

В приложении ASP.Net, если я добавляю в идентификацию impersonate = "true", я получаю эту ошибку: Доступ к пути '\ MyServer \ MyShare \ testing.txt' запрещен.

Я никогда раньше не сталкивался с этим сообщением об ошибке входа в систему; откуда это? Если я создаю приложение на сервере и записываю его в физическое местоположение, оно работает нормально (поэтому безопасность там хорошая), просто создается впечатление, что безопасность общего ресурса не работает (даже если для него установлен параметр «Все»). на полную запись), или на уровне сервера чего-то не хватает, и мне вообще не разрешено просматривать что-либо.

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

Спасибо!

Ответы [ 3 ]

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

Обновление:

Так что я думаю, что опубликовал это слишком рано ... Причина, по которой он не работал на моем локальном хосте, была вызвана тем, что каталог был установлен как разрешающий анонимный доступ (поэтому страница не была олицетворена; пользователь был ""). 1005 *

Он также начал работать на сервере; однако, там ничего не изменилось ... Я не знаю, было ли что-то запущено во время простоя / завершения работы приложения или что-то, но все работает как положено.

Спасибо за комментарии!

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

По умолчанию приложения ASP.NET запускаются как YourMachine \ IUSR_ YourMachine. Вы должны открыть разрешения для общего ресурса для участника "Все" (который по-прежнему может не работать) если машины не находятся в одном домене), или запустите приложение IIS от имени пользователя, имеющего доступ к общему ресурсу.

Вы можете изменить пользователя, под которым работает приложение ASP.NET:

.Open Администрирование -> Информационные службы Интернета , затем щелкните правой кнопкой мыши веб-сайт или виртуальный каталог, содержащий приложение, и выберите Свойства . Выберите вкладку Безопасность каталога и нажмите Изменить . Наконец, в разделе Анонимный доступ введите имя пользователя и пароль пользователя, который имеет доступ к общему ресурсу.

Mike

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

Проблема заключается в том, что с параметром олицетворение личности, установленным в значение false, учетная запись рабочего процесса ASP.NET пытается выполнить запись в общий ресурс, обычно это учетная запись NETWORK SERVICE или ASPNET. В зависимости от того, какую версию Windows вы используете.

Если для параметра impersonate задано значение true, без указания имени пользователя или пароля будет использоваться аутентификация текущих пользователей, чтобы попытаться выполнить запрос.

Вам потребуется либо предоставить разрешения учетной записи рабочего процесса, что, скорее всего, невозможно. Или B создайте конкретную учетную запись, которую ваше приложение может олицетворять, а затем укажите учетные данные в файле web.config в теге удостоверения.

...