Webservice pdf文件在Debug中工作,但在发布后不工作

时间:2011-12-13 23:57:41

标签: asp.net vb.net web-services iis-7

我们有一个frankenstein网络服务,我一直在修复pdf生产的问题,一切都在预期的Debug中工作但是当我发布到测试IIS7服务器它运行但我没有得到PDF。

网站呼叫此功能并传递claimId

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和Authenticated Users但结果没有变化。我已将应用程序池设置为网络服务,本地服务,本地系统和默认设置,但仍然没有任何乐趣。

是否有任何关于是否存在其他权限集的想法我在IIS7中缺少或阻止文件读/写的其他内容?

1 个答案:

答案 0 :(得分:0)

最后回到这个但是了解到它是IIS 7在我们每次发布网站时失去文件夹权限和web服务的应用程序池权限的组合,因为它在不同级别的.net上运行。基本上我们将pdf逻辑从webservice移动到网站appcode文件夹,并赋予本地iis用户对此文件夹的权限(通过IIS,而不是通过Windows资源管理器),一切都很稳定。