У меня есть файл pdf на сервере Windows под управлением IIS7, который я использую в качестве шаблона для создания версии моей веб-формы для печати / офлайн. Я обращаюсь к нему в приложении APS.NET с помощью обработчика .ashx. Сначала все работало нормально, пока я не перешел в производство, потом мне Access to the path 'D:\inetpub\site\My PDF.pdf' is denied.
Сначала я попытался изменить идентификатор пула приложений, если это была проблема с разрешениями. Я также добавил разрешения на полный контроль для этой личности. Это сломало его и в нижней среде. Когда пул приложений был переключен обратно на исходный (ApplicationPoolIdentity), он все еще не работал.
Я нахожу файл через HttpContext.Current.Server.MapPath
, который работает должным образом. Тогда я использую FileStream existingFileStream = new FileStream(fileNameExisting, FileMode.Open)
чтобы открыть файл для редактирования через iTextSharp. У файла есть разрешения на «Сетевую службу».
Любая помощь будет оценена. Дайте мне знать, если вам понадобится дополнительная информация.
Прошу прощения, если это не тот сайт для ответа на этот вопрос. Если это так, дайте мне знать, и я перейду на нужный.
РЕДАКТИРОВАТЬ:
Ниже приведены разрешения через icacls файла в производственной среде. Имена MYDOMAIN, CustomAppIdentity, WEBSERVER и LabManager изменены в целях безопасности.
MYDOMAIN\CustomAppIdentity:(F)
NT AUTHORITY\NETWORK SERVICE:(F)
NT AUTHORITY\Authenticated Users:(I)(RX)
NT AUTHORITY\SYSTEM:(I)(F)
WEBSERVER\LabManagers:(I)(M)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(RX)
NT SERVICE\TrustedInstaller:(I)(F)
РЕДАКТИРОВАТЬ: Информация о событии
Event code: 4011
Event message: An unhandled access exception has occurred.
Event time: 7/1/2015 11:07:56 AM
Event time (UTC): 7/1/2015 6:07:56 PM
Event ID: 9c4a06e4465744da8d76e27f3d954c30
Event sequence: 48
Event occurrence: 3
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/8/ROOT/MyProject-1-130802388056279071
Trust level: Full
Application Virtual Path: /MyProject
Application Path: D:\inetpub\parent-site\MyProject\
Machine name: MYSERVER
Process information:
Process ID: 4236
Process name: w3wp.exe
Account name: IIS APPPOOL\MyProject
Request information:
Request URL: http://parentsite.url/MyProject/PdfHandler.ashx
Request path: /MyProject/PdfHandler.ashx
User host address: 159.1.15.73
User:
Is authenticated: False
Authentication Type:
Thread account name: IIS APPPOOL\MyProject
Custom event details:
Обработчик PDFHandler.ashx
имел неправильный язык, vb, а не C #, что вызывало исключение. Это не было проблемой сервера, это просто приводило к ошибочной ошибке. Пока это устранило проблему.