Yet another webfarm/multi-server question

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Yet another webfarm/multi-server question

Matt
Dean- I know you've been asked this type of question a million times (pretty sure I've read all of them on the forum)... but I've got another one for you: We are trying to use NeatUpload through a "sticky" load balancer, and our popup progress bar pops up, but the progress bar doesn't advance. The transfer/upload does happen in the background, so from what I can understand it's just the progress bar having the issue. Here's our web.config related info:
Any ideas? Thanks. Matt
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Matt
hmm... looks like all HTML is stripped, let's try this again: section name="neatUpload" type="Brettle.Web.NeatUpload.ConfigSectionHandler, Brettle.Web.NeatUpload,Version=1.3.3287.37493,Culture=neutral,PublicKeyToken=C95290D92C5893C8" allowLocation="true" neatUpload useHttpModule="true" defaultStorageProvider="FilesystemUploadStorageProvider" xmlns="http://www.brettle.com/neatupload/config/2008" decryptionKey="1943D5B046CAB283CB6FF1529F589291" providers add name="FilesystemUploadStorageProvider" type="Brettle.Web.NeatUpload.FilesystemUploadStorageProvider" tempDirectory="app_data\Upload_Temp\" providers neatUpload
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Dean Brettle
Administrator
What is your sessionState mode?  Assuming it is neither InProc or Off, the problem is probably that the servers can't connect to the cluster using the name that the user's browser uses.  Can you check that by trying to use a browser on one of the servers to access your app using the same URL that a user would use?  If that fails, then I have a fix in the soon to be released 1.3.13 that will allow you to specify an absolute URL (with hostname, etc) for the handlerUrl attribute of the <add> element used to add a SessionBasedUploadStateStoreProvider.

Alternatively, if your load balancer is truly sticky, you might be able to work around the problem by using the InProcUploadStateStoreProvider as described in Reducing Server Load.

--Dean

Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Matt
Thanks Dean. From what I gather, I think a lot of your response may depend on whether or not the sessionState is InProc... and it is in fact InProc. Does this mean I have to wait for 1.3.13? I admittedly have not tried your suggestions yet, I wanted to make sure I first know what you're talking about. As for the InProcUploadStateStoreProvider, that also seems like it only works if our sessionState is not InProc. Is this true?
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Dean Brettle
Administrator
If the stickiness is based on cookies and you use InProc session state, files uploade with MultiFile with useFlashIfAvailable=true will not update progress. Would that explain the problem? If so, either set useFlashIfAvailable=false or use either StateServer or SqlServer sessionState mode. --Dean
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Guest-956
Unfortunately, no. Not using MultiFile, and don't have any explicit "useFlash" settings specified. Yes, the stickiness is based on cookies, using InProc session state. Based on those 2 things, what is the best setup for me? Waiting for 1.3.13?
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Dean Brettle
Administrator
From what you are saying, it doesn't sound like the issue is caused by using a web farm.  If you copy the Demo.aspx and Demo.aspx.cs files from NeatUpload-version/dotnet/app/Brettle.Web.NeatUpload/ into your deployed web app directory on the server farm and use Demo.aspx to upload, does the progress bar work?
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Matt
Ok, I've essentially reset all my settings, and am now hitting a different problem. Here's the background: - IIS7 running in "Classic Mode" - Trying to run the Demo.aspx file with this directory structure: -- root/nudemo/demo.aspx -- root/nudemo/web.config Here are the contents for the NUDemo/web.config: xml version="1.0" configuration configSections section name="neatUpload" allowLocation="true" type="Brettle.Web.NeatUpload.ConfigSectionHandler, Brettle.Web.NeatUpload" configSections system.web compilation defaultLanguage="vb" debug="true" strict="true" system.web neatUpload xmlns="http://www.brettle.com/neatupload/config/2008" useHttpModule="true" maxRequestLength="2097151" maxNormalRequestLength="4096" configuration The problem is that big files (don't have a solid size yet, but a 2.3mb file works and a 37mb file does not) make the upload "die"... the page just crashes out in the browser. I originally thought it was a maxRequestLength issue, but as you can see, that property is included in the neatUpload element. Is there something I'm missing?
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Dean Brettle
Administrator
You need to set the maxRequestLength attribute in the <httpRuntime> element as well.
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Matt
Unfortunately that didn't change anything.
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Matt
Ok, I've narrowed it down to where I'm only having issues on IIS7, and a big file (41mb). I tried a 15mb file, and was able to successfully upload it, but the 41mb file just hung the progress bar. The only real difference between my IIS6 server and my IIS7 server is that NeatUpload is in the GAC on IIS6, but not IIS7. The web.config for both servers are exactly the same, and the page which uploads files is also exactly the same. This leads me to believe it's a server configuration issue, but I have no idea what it could be.
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Dean Brettle
Administrator
There is probably a firewall or something on the server that is blocking large requests. If you set useHttpModule="false" do big uploads still fail? If so, it probably isn't related to NeatUpload. You can be absolutely certain by removing the UploadHttpModule and trying to upload to a standard asp.net FileUpload or HtmlInputFile control. BTW, is the progress bar working for the smaller uploads? --Dean
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Matt
Thanks for pointing me in the right direction Dean... I found the culprit. In a nutshell, IIS7 has a default cap on upload filesize, but you can easily change it by adding a setting to your web.config file. See the article for the details. http://www.cyprich.com/2008/06/19/fixing-file-upload-size-limit-in-iis-7/
Reply | Threaded
Open this post in threaded view
|

Re: Yet another webfarm/multi-server question

Dean Brettle
Administrator
Interesting.  I didn't realize that setting had an effect if you used the Classic app pool, and I thought the default was 300MB.  Thanks for the info, I'll update the NeatUpload installation step that mentions that setting to reflect this.

--Dean