Re: Using BinaryWrite to output PDF to IE

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Hi Alec,

I was able to duplicate the problem by making multiple requests for the file
with multiple browser instances. I'm running XP/IE 6, BTW. I was able to
reproduce the problem on both IE and FireFox. The error is coming from the
Acrobat Reader, alright. I can only guess at the cause, as it doesn't give
any additional information, or log the error. You may want to contact their
support group.

--
HTH,

Kevin Spencer
Microsoft MVP
Professional Numbskull

Show me your certification without works,
and I'll show my certification
*by* my works.

"Alec MacLean" <alec.maclean@xxxxxxxxxxxxxxxxxxx> wrote in message
news:OHHtSxzTGHA.5884@xxxxxxxxxxxxxxxxxxxxxxx
Hi Kevin,

Thanks for your feedback. You don't mention your OS/browser versions -
this might help me a bit. I know it works when using Firefox.

Yes, Adobe Reader (v.7) is installed on all the machines accessing the
pages.

The Adobe Reader error message provided is:
"There was an error opening this document. This file is already open or
in use by another application."

I've been searching further afield and note that a few people have logged
similar problems, particularly for PDF output.

One suggestion is to alter the metabase.xml file to allow greater sizes of
AspBufferingLimit, e.g. set it to "2000000000" (2Gb).
However, the test files I'm using are only in the 85Kb range, so clearly
shouldn't be a problem for the default limit of 4Mb.

Interestingly, the XP PC I'm using to develop on doesn't have a
metabase.xml - presumably one of the differences between the versions of
IIS for XP and Windows Server 2003.

Al



"Kevin Spencer" <kevin@xxxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:Oi9WPazTGHA.5332@xxxxxxxxxxxxxxxxxxxxxxx
It didn't fail on this client. Are you sure that the Adobe acrobat reader
was installed on the machine on which it failed? Can you describe in
detail what you mean by "failed?"

--
HTH,

Kevin Spencer
Microsoft MVP
Professional Numbskull

Show me your certification without works,
and I'll show my certification
*by* my works.

"Alec MacLean" <alec.maclean@xxxxxxxxxxxxxxxxxxx> wrote in message
news:e0jsuMzTGHA.792@xxxxxxxxxxxxxxxxxxxxxxx
Hi,

I've created a small application for our company extranet (staff
bulletins)
that outputs a list of links to PDF's that are stored in a SQL table.
The
user clicks a link and the PDF is loaded into a new browser window.

This works as expected on the test PC (using forms authentication, but
no
SSL) using IE. It also works as expected on the production server when
using FireFox. The production server environment is using forms
authentication and SSL.

However the PDF load fails when using IE as the browser to access the
production server (which my users/staff colleagues will be doing).

I have also tested it without using SSL or Forms authentication by
putting
it on our public site on the production server.
This also means you can (temporarily) see the problem for yourself
at: www.copeohs.com/ebulletins/bulletins.aspx

The error seems to be generated by Adobe Reader rather than specifically
IE,
but as the system works using FireFox, I am guessing it is the
relationship
between IE and Adobe Reader that is the problem?

The Adobe Reader error message provided is:
"There was an error opening this document. This file is already open or
in
use by another application."

I am using VB.NET 1.1 on IIS 6 (win 2003 svr).

Code snippet that outputs the PDF from the DB:
--------------------------------------------------------
'The required file ID comes from the querystring.
If Me.Request.IsAuthenticated Then
If Request.QueryString.Count <> 0 Then
'Get the (pdf) filename to display
Me.FileID = CInt(Request.QueryString("doc").ToString)
Dim ds As New DataSet
Dim PDFfileSize As Long
Dim db As Database = DatabaseFactory.CreateDatabase
Dim cmd As DBCommandWrapper =
db.GetStoredProcCommandWrapper("usp_Bulletin_Single_SELECT")
cmd.AddInParameter("@BID", DbType.Int32, Me.FileID)

Try
Me.lblErr.Visible = False
'Load the record (PDF file) into local dataset
db.LoadDataSet(cmd, ds, "theBulletin")

'Resize the byte array for file
PDFfileSize =
CLng(ds.Tables("theBulletin").Rows(0).Item("BFile").length)
Dim thePDF(CInt(PDFfileSize)) As Byte

'Put the PDf into the byte array
thePDF = ds.Tables("theBulletin").Rows(0).Item("BFile")

'Send the file to the output stream
Response.BufferOutput = True

'Try and ensure the browser always opens the file and doesn't just
prompt to "open/save".
Response.AddHeader("Content-Disposition", "inline")

'Set the output stream to the correct content type (PDF).
Response.ContentType = "application/pdf"

'Output the file
Response.BinaryWrite(thePDF)

thePDF = Nothing

Catch ex As Exception
Me.lblErr.Visible = True
Me.lblErr.Text = ex.Message.ToString

Finally
'Tidy memory
ds = Nothing
cmd = Nothing
db = Nothing
End Try

End If
Else
Response.Redirect("/logon/applist.aspx")
End If
--------------------------------------------------------

I would greatly appreciate any help/ideas offered...thanks in advance.

Al









.



Relevant Pages

  • Re: Using BinaryWrite to output PDF to IE
    ... and the Adobe Reader floats wherever they want it. ... reader and they still have the pdf list. ... The production server environment is using forms ... Dim PDFfileSize As Long ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Using BinaryWrite to output PDF to IE
    ... Adobe Reader is installed on all the machines accessing the ... user clicks a link and the PDF is loaded into a new browser window. ... The production server environment is using forms ... Dim PDFfileSize As Long ...
    (microsoft.public.dotnet.framework.aspnet)
  • Using BinaryWrite to output PDF to IE
    ... The production server environment is using forms ... However the PDF load fails when using IE as the browser to access the ... The error seems to be generated by Adobe Reader rather than specifically IE, ... Dim PDFfileSize As Long ...
    (microsoft.public.dotnet.framework.aspnet)
  • RE: PDF in IE6
    ... Adobe Reader 6 but useful). ... "How to Disable Third-Party Tool Bands and Browser Helper Objects". ... when I view a pdf document in a browser: the document opens well, ... Internet Explorer 6.0 SP1 ...
    (microsoft.public.windows.inetexplorer.ie6.browser)
  • Explorer und Adobe 6,0
    ... entferne ich im Adobe Reader in den ... Preferences grundsätzlich den Haken "Display PDF in ... Browser" und schon wird das PDF da angezeigt wo es ... Third-Party browser extensions ". ...
    (microsoft.public.de.german.inetexplorer.ie6)