Доступ к сетевому ресурсу из приложения asp.net. Работает в Visual Studio, но не в IIS, почему? - PullRequest
1 голос
/ 17 марта 2011

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

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

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

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

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

Код такой:

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

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

Ответы [ 5 ]

5 голосов
/ 17 марта 2011

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

<system.web>
  <identity impersonate="true" userName="user with correct rights or admin" password="password"/>
  ...
1 голос
/ 17 марта 2011

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

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

wc.Credentials = CredentialCache.DefaultCredentials;
0 голосов
/ 17 марта 2011

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

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

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

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

0 голосов
/ 17 марта 2011

Вам нужны какие-то учетные данные для использования общего ресурса с asp.net.Вы можете настроить олицетворение в web.config или установить wc.Credentials, используя сетевые учетные данные.В файле web.config вы должны указать следующее в разделе system.web:

<identity impersonate="true" userName="username_here" password="password_here" />
0 голосов
/ 17 марта 2011

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

Узнайте, что может вызвать WebException для метода DownloadFile @ MSDN .

...