Я не могу получить доступ к пути unc из С#. Получение доступа запрещено

Я использую Windows Server 2008 и IIS 7.5. Я пытаюсь получить доступ к файлу следующим образом: \server\C$\temp\testFile.log из кода C#, работающего на другом сервере.

Мое имя пользователя admin на обоих серверах. Код работает под этой учетной записью. Временная папка имеет полные права для (моего пользователя) и ASP.NET.

Почему я не могу получить к нему доступ?

Я не могу сделать общую папку; против правил. Я уже работаю под полным аккаунтом; поэтому мне не нужно олицетворять, верно?


person user1019042    schedule 17.07.2013    source источник
comment
Когда вы говорите, что используете учетную запись «admin» на обеих машинах, вы имеете в виду администратора локальной машины или администратора домена/схемы/и т. д.?   -  person Dave H    schedule 17.07.2013
comment
Можете ли вы получить доступ к папке в проводнике Windows?   -  person    schedule 17.07.2013
comment
Я также хочу упомянуть, что я могу получить доступ к пути из консольного приложения.   -  person user1019042    schedule 17.07.2013
comment
@Amy: да, я могу получить к нему доступ в проводнике Windows... скопировать/вставить.   -  person user1019042    schedule 17.07.2013
comment
@Dave: мой пользователь является администратором домена   -  person user1019042    schedule 17.07.2013
comment
Вы используете две обратные косые черты перед именем сервера? Ваш вопрос показывает только один. И, конечно же, в C# вам придется писать string либо как "\\\\server\\C$\\temp\\testFile.log", либо как @"\\server\C$\temp\testFile.log".   -  person Lance U. Matthews    schedule 18.07.2013


Ответы (3)


Это веб-приложение? Вы уверены, что приложение выдает себя за вашу учетную запись? Установлено ли для анонимного доступа значение true в IIS?

person AnotherDeveloper    schedule 17.07.2013
comment
Вы сказали: вы уверены, что приложение выдает себя за вашу учетную запись? Да, я пробовал олицетворение, хотя и не думал, что мне это нужно, по этой ссылке: support.microsoft.com/kb/306158#3. Но когда я увидел ваше: вы уверены, это заставило меня вернуться и натолкнуться на другую ссылку, которая дала мне правильное олицетворение: stackoverflow.com/questions/125341/ (проверьте ответ Мэтта Джонсона). Его решение сработало как шарм! Так что вы направили меня в правильном направлении. Благодарю вас! Примечание: решение работает, даже если для параметра анонимности IIS установлено значение false! - person user1019042; 18.07.2013
comment
Потрясающий! Рад, что смог сыграть некоторую (пусть даже очень незначительную) роль в том, чтобы вы получили нужное вам решение. Я ответил только потому, что эти две вещи возвращались, чтобы преследовать меня снова и снова. - person AnotherDeveloper; 15.08.2013

Была такая же проблема некоторое время назад.

Чтобы процесс отладки выполнялся с полным доступом администратора, вам необходимо открыть Visual Studio с полным доступом администратора.

В рабочей среде ваш процесс должен быть «Запуск от имени администратора».

Если вы не сделаете ничего из вышеперечисленного, вам придется реализовать олицетворение.

person Adriano Carneiro    schedule 17.07.2013

Кажется, это известная проблема. Типичные решения используют WNetUseConnection.

Видеть

  1. Доступ к общему файлу (UNC ) Из удаленного недоверенного домена с учетными данными
  2. WNetUseConnection подключается к удаленному server/UNC в том же домене, но не в другом/удаленном домене

Но первое, что я думаю, это проверить FileIOPermission как обсуждалось в разделе Проверка «доступности» пути UNC

person mkoertgen    schedule 17.07.2013