Welcome Guest Search | Active Topics | Sign In | Register

Problem writing to file servers with AjaxUploader Options
Nisse
Posted: Wednesday, January 16, 2008 7:58:56 AM
Rank: Member
Groups: Member

Joined: 10/17/2007
Posts: 13
I run a web farm and I want ajaxuploader to write its files to a file written to a central file server (so that it does not matter which webserver the user is sent to on the next request).

When I change the TempFileLocation to something like "\\myfileserver\mysharename" then I get an exception when I try to upload the file (in /eo_web.ashx)

Quote:
System.IO.IOException: The specified server cannot perform the requested operation.

at EO.Web.Internal.bh.a(cq A_0, HttpResponse A_1, Object A_2)
at EO.Web.Internal.an.a(cq A_0)
at EO.Web.Internal.an.a(HttpApplication A_0)
at EO.Web.Internal.eh.a(HttpContext A_0)
at EO.Web.Runtime.ProcessRequest(HttpContext context)
at System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


When I keep the TempFileLocation to something like "C:\temp" everything works.
My web servers are running ASP.NET 1.1, EO.Web Controls 2007.1 on Windows Server 2003 SP1.

The problem is not that I dont have permissions to write to the directory.
Previously I had similar problems with an image component that could not create the images directly to the file server. But I can create the image on C:\temp and then copy it to the file server.

Is it possible that the EO.Web assembly does not have the rights to write to the file server but I have the rights when I try to do it from my own web-assembly?

/nisse
eo_support
Posted: Wednesday, January 16, 2008 8:14:36 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,095
Hi,

The permission is a rather complicated thing with two things come into play. One is permission setting on your IIS, another is permission settings for .NET. It is possible that our DLL and your DLL have different permissions due to .NET permission settings. So your best bet is still to set TempLocation to a local drive and then copy it over.

Thanks
Nisse
Posted: Wednesday, January 16, 2008 8:21:24 AM
Rank: Member
Groups: Member

Joined: 10/17/2007
Posts: 13
Yes I understand that it could be a solution in another scenario. But since I am on a web farm the requests does not always go to the same server. The AjaxUploader does not work if I dont have sticky sessions turned on in my load balancer and I dont want that.
How can I increase the permissions for the EO.Web-dll?
/nisse
eo_support
Posted: Wednesday, January 16, 2008 8:29:30 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,095
Hi,

You can try to put EO.Web.dll into GAC using steps outlined here:

http://www.essentialobjects.com/ViewDoc.aspx?t=InstallationAndDeployment%2ffor_vs2005.html

Based on the default .NET permission policy, putting a file into GAC gained a side effect of having full permission because the default policy grant GACed DLL full permission.

Thanks
Nisse
Posted: Wednesday, January 16, 2008 1:50:09 PM
Rank: Member
Groups: Member

Joined: 10/17/2007
Posts: 13
I have installed the EO.Web.dll into the GAC but that did not change anything.
I gave "full trust" to that assembly and I changed the intranet zone to have full trust.
But that did not change anything either.
Do you have any other ideas?
Thans in advance
/nisse
eo_support
Posted: Wednesday, January 16, 2008 1:58:18 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,095
Is it possible for you to map the network drive to a virtual directory below your app's root from IIS and then reference it relative to your app's root path. For example, if your app's root path is App1 and you access the page via http://your_web_server/app1/page1.aspx, you can then map fileserver to a virtual path as http://your_web_server/app1/shared_files, after which you set the uploader's TempFileLocation to ~/shared_files/.
Nisse
Posted: Monday, January 21, 2008 6:49:29 AM
Rank: Member
Groups: Member

Joined: 10/17/2007
Posts: 13
I think I have a better understanding of the problem now.
There seems to be a problem with the specific directory that I wanted to use. There are already alot of files there.
When I change it to a subdirectory of the original directory it works -> there is no permissions issue
When I change it to another directory at the same level (\\myfileserver\mysharename2) it works.

Do you have any idea what could have caused the problem in the first place?
It would be nice to know so that I dont run into the same problem in the future.

eo_support
Posted: Monday, January 21, 2008 6:57:46 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,095
Hi Nisse,

Thanks for the update. The AJAXUploader does not care about how many files in its temp file directory. It does scan the directories to check whether some of the files are expired. It might be that part fails due to whatever restrictions of the OS. In any case, you should have a dedicated temp file directory for the AJAXUploader just from performance point of view.

Thanks


You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.