|
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
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,217
|
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
|
|
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
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,217
|
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.htmlBased 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
|
|
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
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,217
|
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/.
|
|
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.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,217
|
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
|
|