Supertext Home
Chief of the System Blog

Archive for the 'IIS' Category


ASP Server Variables, Request Object and Browser Caps

Tuesday, April 8th, 2008

There are a lot of posts in the ASP.NET forums about the ServerVariable object and I also find myself again and again trying to figure out what property really contains which information. So the easiest way is always to just quickly try it out.

In order to once and for all solve this issue, I put together a little page that lists all properties from the Request.ServerVariable collection.

In addition it also prints out some of the other interesting Request and all Request.Browser properties.

Example (Not live)
The code (in html)
ServerVariables.aspx (in a zip)

 

Summary
List all Request.ServerVariable properties:

<%foreach(string name in Request.ServerVariables){%>
<tr>
    <td>
        <%= name %>
    </td>
    <td>
        <%= Request.ServerVariables[name] %>
    </td>
</tr>
<% } %>

Other Request objects:

<%= Request.ApplicationPath %>

Browser Caps:

<%=Request.Browser.Browser %>

Good luck!


File Upload with ASP.NET

Tuesday, January 29th, 2008

Jon Galloway already had some interesting thoughts about uploading large files with ASP.NET. Unfortunately he didn’t really advise on one good solution.
So I decided (or had) to take a look myself. What I needed is an upload button with a progress bar that works on a Mac and on a PC with a reasonable recent browser.

And here are the results:


Convincing Solutions: (They normally worked on IE, but not necessarily on Mac)

KUpload
A bit a confusing product palette and pricing, but looks like it starts at $79 plus $19 for the progress bar. Or $499 with Source Code. Demo works fine. Web-Site looks a little unprofessional.

DEXTUpload .NET
Component seems to work fine, nice progress bar and decent pricing for $338. Homepage works a bit strange, but info is there. No success on Mac.

SlickUpload
Nice simple online Demo and webpage. Starts at $149. Progress Bar updates nicely with infos about uploaded kBytes and time remaining. Forum has posts and lots of views. Last update was on the 06/24/2007. Works on Mac Safari, FF and on Windows.

Dart File Upload for ASP.NET
Looks professional and the online Demo works fine. Nice progress bar with additional information. Skinning possibilities and a special File Dialog button, so you don’t see the “Browse” button. Starts at $249.
Progress Bar does not really move on Safari or FF on Mac.

Essential Objects Ajax Uploaded
Another nice component with a good online Demo. Pricing starts at $149. Multiple Postback options and different skinning possibilities. Works fine in all tested browsers.

Telerik RadUpload Promoetheus
Telerik is a big provider of ASP.NET components with a pretty good reputation as far as I know. Their Upload component seems to be one of the more powerful on this list. The individual control starts at $249 and the whole suit is $799.
Based on this info, I decided to give it a try. Unfortunately, it does not currently work in Integrated Mode with IIS 7. Neither does the Progress Bar work in Safari 3 on a Mac 10.5.1 (Leopard). Very disappointing.

 

Not so convincing Solutions: (Demo’s did not work on my Vista IE7)

UpFilesBE
Look more like a hobbyist component, also, no updates since a while, no forum, etc. On the other hand, it’s only $49.

Update: Original Link does not work anymore: http://www.datanyms.com, but got a comment with a new Link to expanData AND a new price, now its $999. I tested it again. Looks like the demo is still the old one. It works fine in IE, but still not in Safari.

AsyncFileUpload
The only one that even mentions Ajax Panel compatibility, other than that, not much there. No Progress Bar either. $69 is ok. Last update was on May 2007.

FileUp
For $499 from SoftArtisans. There is no Progress Bar, at least in the Online Demo. Rather weak online presentation, but seems to be one of the players in the Upload Component Area.

PowUpload
With $199 in the middle field if it comes to pricing. Demo works fine, but the Progress Bar clearly reloads after each update and runs in a Popup. There are better solutions out there.

ABCUpload .Net
One of the more expensive tools for $899. The Upload happens in Popup Window, which I don’t really like too much, also the price is pretty high and I’ve never heard from this company before.

Mediachase FileUploader.NET
Starts at $310 and goes up to $3625 for a Corporate License. Progress Bar is in a Popup, but did not work in my test.

csNetUpload
Only $50, but no online demo or forum available, so I didn’t test this any further.

UploadProgressTracker
Again only $50, but looks like there has been no update since 2006, not really a good candidate either. Demo works fine though.

JUpload, Active Upload, Upload Friendly need a Java Applet to work, which is not something we want to do. So I didn’t look at them any further.

 

Open Source

NeatUpload
Looks like a pretty cool Open Source Component. The Progress Bar is in an IFrame and seems to do its job, but the update steps are not very fine grained. Also supports Mono!
Unfortunately it also does not work with Integrated Mode in IIS7. Please help voting so that Microsoft fixes this issue.
Passed the test in all my browsers (Mac and PC). Forum is full and recent, support seems to be available.

SWFUpload
The only Flash based component in this test. Was my longtime favorite and still is to a certain degree. We used this for Supertext for a while now. Really like the architecture and the features, unfortunately we had many users for which it didn’t work. Would be my first choice for an Intranet solution or if you have a limited user base.

FileUploadAjax
Didn’t see much Ajax or even a Progress Bar on my quick test, but does have decent amount of online examples.
Forum has tons of posts and latest version is from the 7/27/2007.

SharpUpload
Looks like this is rather a helper component to handle uploaded files, than something like the other tool that come with progress bars. etc.

Multiple File Upload With Progress Bar Using Flash and ASP.NET
From the Codeproject Website. Got really good reviews, but didn’t get around to try it out yet.

Summary
HORRIBLE! More than half of the products don’t really work, most of them don’t do anything on a Mac. Not sure why this has to be such an issue. Is this only an IIS/ASP issue?
The only 3 Components that really worked in our quick tests were SlickUpload, Essential Objects and NeatUpload. We kinda liked SlickUpload, but decided to give NeatUpload a try. Will keep you posted about the results.

Would really love to hear what experiences that other people had?



Recycle worker process IIS 6.0

Monday, November 26th, 2007

Yesterday we had a customer that could not complete his order, during the checkout. Digging a bit deeper I found out that the IIS Worker Process restarted at exactly the same time.

Log in the Event Viewer:

A worker process with process id of ’7232′ serving application pool ‘DefaultAppPool’ has requested a recycle because the worker process reached its allowed processing time limit.

Doesn’t sound very good, does it? As it turns out, this is default behavior and should protect IIS from Memory Leaks and other bad things in you application.

RecycleWorkerProcess

Luckily you can adjust this setting. In my case it was set to 1740 min (which is about once a day), which is not a very good solution. The problem is, that every time the worker process restarts, you loose all your asp.net session states. Now you have several alternatives:

  • Keep your session state out of process. Either via Session State Service or SQL Server, but both add complexity and are slower.
  • You can the recycle behavior. I’ve set it to restart at 22:00. This is 04:00 in Switzerland. Hopefully all clients in the USA and in Switzerland are done ordering at this time.

Nice would be if the Session State could be transferred from one process to the next, but that is not an option yet.

There is a nice forum post about the IIS 6.0 Recycling Tab:
http://forums.asp.net/t/623320.aspx

And about retaining your session state:
http://www.ondotnet.com/pub/a/dotnet/2003/03/24/sessionstate.html

Lucky for us, the customer actually called and we were able to save this order.



Update:

Same problem with IIS7

  • Topics
  • Archive
  • Subscribe
  • Facebook
  • Twitter