우리는 pdf 제작 문제를 해결하고 모든 것이 디버그에서 예상대로 작동하는 frankenstein webservice가 있지만 테스트 IIS7 서버에 게시하면 실행되지만 PDF를 얻지 마십시오.Webservice pdf 파일은 디버그에서 작동하지만 게시 한 후에는 작동하지 않습니다.
이 기능 callse 웹 사이트와는 claimId 차례에서 PDF 형태로 읽는 함수를 호출
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 양식이나 완성 된 양식을 쓰는 폴더에 권한 문제가 있다고 생각하고 있지만 네트워크 서비스를 포함하여 생각할 수있는 모든 권한을 부여했습니다. IUSR, IIS_USRS 및 인증 된 사용자이지만 결과에는 변화가 없습니다. 응용 프로그램 풀을 네트워크 서비스, 로컬 서비스, 로컬 시스템 및 기본값으로 설정했으며 여전히 기쁨은 없습니다.
다른 권한 집합이있는 경우 아이디어가 있습니까? IIS7에서 파일을 읽거나 쓸 수 없게하는 다른 설정이 있습니다.
힌트 # 1 :'pdfDocument' 주위에'Using' 블럭 넣기 –
구조적 예외 처리 (try/catch)를 추가하고 프로덕션 시스템에서 어딘가에 발생하는 예외를보고해야합니다 (텍스트 기반 로그 파일 아무것도 아닌 것보다 낫다.) 예외가 없으면 문제가 AuthorizeUser 메서드에 있고 로깅을 추가하여 실패한 이유를 확인할 수 있습니다. 그들이 말한 것처럼 –
curiouser와 curiouser. Chrome을 사용하면 사이트가 작동 할 것으로 보이지만 IE를 사용하여 베타 사이트를 보면 제작 사이트로 리디렉션 된 것으로 보입니다. 우리는 네트워크 정책과 IE 설정을 통해 이러한 동작이 설정 될 수있는 곳을 찾을 수 있는지 확인하고 있습니다. – Brian