Получите доступ к общему сетевому ресурсу из приложения asp.net.Работает в Visual Studio, но не в IIS, почему?

StackOverflow https://stackoverflow.com/questions/5341771

  •  27-10-2019
  •  | 
  •  

Вопрос

У меня есть общий сетевой ресурс в интрасети, который предоставляет доступ на запись всем (гостевым) пользователям

Итак, я написал программу (модуль mojoportal, во всяком случае, я думаю, это то же самое) на c #, которая записывает некоторые файлы по этому пути, и в Visual Studio отлично работает.

Теперь, используя ту же программу в IIS 7.5, не работает, я получаю это исключение:

Исключение System.Net.WebException:Исключение произошло во время запроса WebClient.---> Исключение System.IO.IOException - Ошибка входа в систему:неизвестное имя пользователя или неверный пароль.

Что ж...поскольку доступ к общему ресурсу smb предоставляется всем, я не понимаю, почему это не работает в IIS...

Код заключается в следующем:

WebClient wc = new WebClient();
wc.DownloadFile(urltodownload, smbshare);

Что это может быть?Спасибо

Это было полезно?

Решение

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

<system.web>
  <identity impersonate="true" userName="user with correct rights or admin" password="password"/>
  ...

Другие советы

Вы пробовали установить учетные данные?

Я полагаю, что всеми группе все еще требуются какие -то достоверные учетные данные, не устанавливая учетные данные, которые вы анонимны ...

wc.Credentials = CredentialCache.DefaultCredentials;

Похоже, что это не проблема с доступом к SMB Share, это проблема с доступом к веб -сайту, хранящемуся в urltodownload. Анкет Как сказал Ричард, вы можете использовать учетные данные по умолчанию, т.е. wc.UseDefaultCredentials = true; или какой -то конкретный набор учетных данных или настройка веб -сайта на urltodownload Принять анонимные соединения.

Обратитесь к тому, что может вызвать WebException для DownloadFile метод @ Msdn.

Вам нужны какие -то учетные данные, чтобы использовать акцию от ASP.NET. Вы можете настроить подражание на web.config или установить Wc.credentials с использованием сетевых учетных данных. В web.config вы установите Follwoing в разделе System.Web:

<identity impersonate="true" userName="username_here" password="password_here" />

Для моего приложения Visual Studio (Winforms) это был простой акт создания сильного именного ключа (SNK) для использования приложения.

Я не уверен, почему.

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

Надеюсь это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top