Прочитав тонны подобных постов, я решил придумать этот.Ну, в принципе эта проблема похожа на многие другие, но почему-то я не могу заставить ее работать.
Вот сценарий, у меня есть балансировка нагрузки на 2 серверах (servA и servB), и мне нужно принудительно заставить приложениесоздать только на 1 из них.Поэтому я хочу указать путь UNC при сохранении файлов.У меня, очевидно, есть проблема с созданием файлов в каталоге по сети.
Если я запускаю его с Cassini, все хорошо, я могу получить доступ к пути, потому что он зарегистрирован в моей учетной записи.Как только я перенесу приложение на сервер разработки, оно больше не будет работать.Я знаю, что IIS использует пользователя, связанного с пулом приложений, поэтому я проверил эту учетную запись (которая является network_service) и добавил права на запись в эту папку.
Все еще недостаточно.Что вы думаете о «Все» ?!Это должно работать!
О, ну, это не так.
Давайте посмотрим код:
Directory.CreateDirectory("\\\\my.ip.over.da.net\\c$\\inetpub\\wwwroot\\projfolder\\otherprojfolder\\test");
И это сообщение, которое я получил, когда пытался создать этопапка.
{"Message":"Access to the path \u0027\\\\\\\\my.ip.over.da.net\\\\c$\\\\inetpub
\\\\wwwroot\\\\projfolder\\\\otherprojfolder\\\\test\u0027 is denied.","StackTrace":"
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at
System.IO.Directory.InternalCreateDirectory(String fullPath, String path,
DirectorySecurity dirSecurity)\r\n at System.IO.Directory.CreateDirectory(String path,
DirectorySecurity directorySecurity)\r\n at
NSC.Ajax.GetData.testgrid()","ExceptionType":"System.UnauthorizedAccessException"}
Она вызывается через AJAX для упрощения тестирования, поэтому ответ форматируется таким образом.