PDF-файл Webservice работает в Debug, но не после публикации - PullRequest
0 голосов
/ 14 декабря 2011

У нас есть веб-сервис Франкенштейна, в котором я исправлял проблему с производством PDF, и в Debug все работает как положено, но когда я публикую на тестовом сервере IIS7, он запускается, но я не получаю PDF.

Веб-сайт вызывает эту функцию и передает в него requestId

Public Function QServices_QAudit_GetWorkersCompCoverPage(ByVal claimId As Long) As Byte()
    Dim sess As General.Session = Session.Item("sessionObject")
    Dim pdfDocument As System.IO.MemoryStream
    If Not AuthorizeUser(sess, Context, "qaudit") Then Return Nothing

    pdfDocument = QAudit.QAuditData.GetWorkersCompCoverPage(claimId, sess)
    If pdfDocument Is Nothing Then Return Nothing

    Dim retValue As Byte()
    ReDim retValue(0 To pdfDocument.Length - 1)
    Dim i As Long
    pdfDocument.Seek(0, IO.SeekOrigin.Begin)
    For i = 0 To pdfDocument.Length - 1
        retValue(i) = pdfDocument.ReadByte()
    Next

    Return retValue

End Function

, который, в свою очередь, вызывает функцию, которая читает в формате PDF, заполняет поля, сохраняет их в файловой системе и затем преобразует еев поток памяти и возвращает его.Он преобразуется в поток байтов и отправляется обратно на сайт.Все отлично работает в отладке, но после публикации PDF никогда не сохраняется.Я думаю, что проблема разрешений либо для папки, которая содержит пустую PDF-форму, либо для папки, в которую мы записываем заполненную форму, но я предоставила все разрешения, в том числе сетевые службы.IUSR, IIS_USRS и Аутентифицированные пользователи, но без изменений в результате.Я установил для пула приложений значение «Сетевая служба», «Локальная служба», «Локальная система» и значение по умолчанию, но все равно не радуюсь.

Есть какие-нибудь идеи о том, есть ли другой пропущенный набор разрешений или что-то еще в IIS7, которое мешает чтению / записи файла?

1 Ответ

0 голосов
/ 20 июля 2012

Наконец, вернувшись к этому, но узнал, что это была комбинация потери IIS 7 разрешений на папки при каждой публикации веб-сайта и разрешений пула приложений веб-службы, так как она работала на другом уровне .net.По сути, мы переместили логику pdf из веб-службы в папку appcode веб-сайта и дали локальным пользователям iis разрешения на эту папку (через IIS, а не через проводник Windows), и все стало стабильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...