Chris Hynes just posted a new release of SlickUpload. Hopefully it will work in mono, I'm going to test it for him this weekend since I'm already using it in mojoPortal. So far it only works with Windows installations of mojoPortal and I must admit I'm dubious that the new version will work in mono not because of any problem in SlickUpload but I'm dubious of mono not behaving the same as .NET on Windows. From my last investigation I already know they don't implement the HttpWorkerRequest.GetPreLoadedEntityBody or I should say in the responses I got from the mailing list they call returning null an implementation but under IIS the sub classes of HttpWorkerRequest do in fact return the portion of the request that is already loaded. The .NET documentation confirms that the super class does in fact return null but to me that just means its up to the sub class to implement it. One person on the list also pointed out that Cassini web server returns null here but I think thats too low a bar. The mono/apache platform needs to compete with Windows/IIS.
Anyway the reason I fear it won't work is I already tried checking for the null on the GetPreLoadedEntityBody call and calling .ReadEntityBody() if null is returned and it didn't work and the .NET documentation says the super class HttpWorkerRequest returns 0 when you call ReadEntityBody() so I'm speculating that mono will return 0 from the ReadEntityBody() method and call it an implementation even though on Windows/IIS the sub classes implement these methods much more usefully.
I will be so pleased if I'm wrong and not entirely surprised but a little, stay tuned to find out.
Friday, January 14, 2005 12:36:00 PM