Re: Response.TransmitFile() problem over network
- From: Julia B <JuliaB@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 17 Jul 2009 01:11:02 -0700
Gregory
Just wanted to let you know that the virtual directory solution worked.
Thanks very much!
Julia
"Gregory A. Beamer" wrote:
=?Utf-8?B?SnVsaWEgQg==?= <JuliaB@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in.
news:118AD9BC-2262-4275-B30D-82A16991C32E@xxxxxxxxxxxxx:
Hi, I've got an ASP.NET 2.0 application where I need to open files. I
had it working on my local webserver, with the files on my C drive.
However I've now published the application to our production web
server (Windows 2003 SP2) and the files are on a shared folder within
that web server.
If I try and run the application on the webserver the transmit file
just times out. If I try and run the application in debug mode (i.e on
my local webserver connecting to the files on the production web
server) the transmit file causes an instance of Word or Excel as
relevant to open but the file is blank.
The files concerned are very very small, just a few bytes in some
cases, so I know it's not a file size issue. I've also checked
permissions and the ASPNET account has the correct permissions (I've
checked this by saving files to the same shared folder using the
application).
Does anyone have any hints? Here's the code:
Response.Buffer = False
Response.Clear()
Response.ClearHeaders()
'now get the record name
If e.CommandName = "OrigRecord" Then
filePath = selectedRow.Cells(9).Text
filePath = Global.Global_asax.calRecordFilePath & filePath
Response.AppendHeader("Content-Disposition", "attachment;filename="
&
System.IO.Path.GetFileName(filePath))
Response.ContentType = "text/csv"
Else
filePath = selectedRow.Cells(10).Text
filePath = Global.Global_asax.calReportFilePath & filePath
Response.AppendHeader("Content-Disposition", "attachment;filename="
&
System.IO.Path.GetFileName(filePath))
Response.ContentType = "application/msword"
End If
'now we've got the full path for the file, open it
Response.TransmitFile(filePath)
Response.End()
Thanks in advance
Julia
Share folder? Outside of the application like below?
IIS Root
--> Web Application
--> Shared Folder
If so, the issue is IIS does not allow transversal of the file system.
It only allows you to read things under root. I don't have the specifics
in front of me, but you can turn this feature off (google it). Realize
there are potential security implications. I would not recommend this
approach, unless you cannot do my second recommendation (below):
You can also "trick" IIS to allowing you to use this directory. Every
site that needs to hit this directory adds the folder (aliased, if
necessary) to the web site (In IIS, this is done by adding a new virtual
folder to the application folder).
No matter which approach, make sure you have the proper permissions for
the account ASP.NET is running under. If that account cannot read the
files, you will not be able to serve them up.
--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA
Twitter: @gbworld
Blog: http://gregorybeamer.spaces.live.com
******************************************
| Think outside the box! |
******************************************
- Follow-Ups:
- Re: Response.TransmitFile() problem over network
- From: Gregory A. Beamer
- Re: Response.TransmitFile() problem over network
- References:
- Response.TransmitFile() problem over network
- From: Julia B
- Re: Response.TransmitFile() problem over network
- From: Gregory A. Beamer
- Response.TransmitFile() problem over network
- Prev by Date: Re: Including Background images in emails sent using System.Net.Mail
- Next by Date: Decoupling javascript from UserControls
- Previous by thread: Re: Response.TransmitFile() problem over network
- Next by thread: Re: Response.TransmitFile() problem over network
- Index(es):
Relevant Pages
|