2012-04-23 2 views
3

У меня проблема при попытке доступа к файлу из общей папки в локальной сети.
Когда я запускаю приложение в Visual Studio, он отлично работает, и я могу загрузить файл, но когда я развертываю приложение в IIS, он просто не работает.
Я не понимаю, почему, потому что я предоставляю полные разрешения всем пользователям, включая NETWORK SERVICE и IIS_USR.
В настоящее время я использую свой компьютер для проверки этого. Он имеет Windows 7 и работает с IIS 7.5. Общая папка, к которой я пытаюсь получить доступ, - это установка Windows Vista, в которой не установлен IIS.Доступ к общей папке из приложения, развернутого в IIS

код для загрузки файла заключается в следующем:

protected void button_Click(object sender, EventArgs e) 
{ 
    Response.Clear(); 
    Response.ContentType = "application/octet-stream"; 
    Response.AddHeader("Content-Disposition", "attachment; filename=S10.png"); 
    Response.WriteFile(@"\\192.168.1.82\Machine\file.png"); 
    Response.End(); 
} 

, и это дает мне следующую ошибку:

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.UnauthorizedAccessException: Acesso negado ao caminho '\192.168.1.82\Machine\file.png'.

ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6 and IIS 7, and the configured application pool identity on IIS 7.5) that is used if the application is not impersonating. If the application is impersonating via , the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.

To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access.

Пожалуйста, кто может мне помочь. Спасибо заранее.

ответ

1

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

Read this for more info.

EDIT: Причина, по которой она работает нормально, когда отладка происходит потому, что она использует учетную запись, с которой вы вошли в систему, а не учетную запись aspnet в VS.

Создайте новый пул приложений, работающий под учетной записью службы, которая является членом группы IIS_WPG на сервере IIS и имеет разрешения на общий ресурс, на который вы хотите написать обратно (не забудьте установить учетную запись службы на пароль, никогда не истекающий). Дайте группе IIS_WPG. Прочитайте & Выполнение, список содержимого папки и разрешения на чтение в каталоги веб-сайтов. Измените веб-приложение для запуска в этом новом веб-пуле.

+0

Thaks для вашего ответа, но это не так, я проверил разрешения на доступ и это прекрасно, также это работает хорошо работает в visual studio, это только дает мне проблему при запуске приложения в IIS. – Luis

+0

Ответ отредактировал пост. –

+0

Спасибо за помощь. Я пробовал это, и он не работает, всегда получаю ту же ошибку, не могу понять, что не так. – Luis

0

раствор 1:

Пользователь может определить пользователя домена. Пусть сервер IIS работает с этим пользователем (через идентификатор пула или «подключиться как»). предоставить права доступа этого пользователя в общей папке.

Решение 2:

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

0

Если файл и папка «Машина» находятся на диске C, вам также необходимо предоставить разрешения для корневой папки, содержащей этот путь к файлу, поскольку C-диск обычно защищен от чтения и записи, так как в нем есть системные файлы.

Так, например, если файл находится в пути C: \ Machine \ file.png. Затем вам нужно добавить и предоставить соответствующие разрешения для группы пользователей IIS в Machine Folder, а не только на файл, то есть file.png.

Смежные вопросы