Which build of Cassini should I choose for production? There are 8 public builds from 5 different authors

ぐ巨炮叔叔 提交于 2019-11-27 07:03:59

问题


I found several versions of an IIS-free Cassini webserver built by Microsoft. I'd use it but I'm unsure of which one is best, since there are many forks/builds:

  • the original
  • dmitryr's v3 (with corresponding bug), v3.5, and v3.5.1,
  • A VB-based fork by MPosseth
  • Cassini++ Based on one of dmitryr's builds
  • Cassini Dev by Sky
  • Another version by zippy1981
  • UtiDev Cassini (not a direct Cassini port/fork but close enough)

  • Hostable Web Core

What web server do you recommend of the forks above; is Hostable Web Core the new Cassini, or do I still have a dependency on IIS with HWC?

I'd appreciate it if you would elaborate:

  • The project's security
  • If the fork is suitable for serving a lightweight "Admin" interface
  • Website features
  • Any dependency on IIS (such as HWC).

回答1:


a quick rundown of my view currently is that:

None of these, including my code, is suitable for production purposes. The limitations and restrictions of the simpleworker usage that all share does not lend itself to mission critical (what i perceive 'production' to mean) processes. Not the least of which is the complete inability to serve WCF (does not include WebHttp bindings, IIRC) on any IP other than LoopBack. Another limitation is that they all service requests as a queue, one at a time and as of today ALL requests are processed by the runtime including static text and image files. This may change in CassiniDev (sooner than later if funding is secured). Caching is also all but non-existent in all implementations IIRC.

  • HWC requires IIS7
  • Original is a museum piece
  • Dmitry retired from the Cassini business after a few of us forked so don't look for updates there. His code is a good place to start if you choose to start yet another cassini fork for some odd reason.
  • Cassini++ is Dmitry's code with a few enhancements, primarily the ability to use an external IP but has had no activity since before I started CassiniDev 2 years ago.
  • zippy1981 initially forked Dmitry to solve a content type issue after I was a bit lazy in implementing it. No activity since 04-2010
  • I have no experience with MPosseth's VB port, appears dormant.

  • UtiDev has some great features such as running as a service and is not strictly a Cassini fork. It is free and redistributable but has been dormant since 2008.

CassiniDev is a tool that I use a lot and the features reflect this. It supports 2.0, 3.5 and 4.0. It is built as an exe, a dll and as a 100% compatible (enhanced) drop in replacement for Visual Studio's dev server. It is suitable and easy to use by testing frameworks and continuous integration environments as well as stand alone exe and embedded in your own applications.

The latest versions of WebDev.WebServer for Visual Studio 2010 have been run through reflector to identify changes and very few were found and the intent has been implemented in CassiniDev.

Development is active and has enjoyed a bit of corporate funding to drive some of the new features such as; a virtual endpoint for sending html/javascript test results back to NUnit, MSTest etc; A browser driver that can open a browser, serve a page and close the browser; a rudimentary start of a configuration system that supports plugins, the current sole implementation is a CORS plugin that will send the headers needed to support cross-domain javascript via CORS, XDomainRequest and Flash.

The codeplex landing page is showing it's age and the documentation hasn't been updated in years but the source shows the activity and I generally have samples/tests that quick start features. I hope to get some time to write some proper docs.

Bugs get fixed and features get implemented as time allows.

From my perspective the only choice is between CassiniDev and UtiDev. Obviously I choose CassiniDev, depending on ones requirements UtiDev could be a better fit.

UtiDev is a very good product but is dormant. It has a few nice features that I will eventually steal such as running as a service and serving multiple sites on one IP.

My .02. Although it may appear that I am shamelessly plugging my own work the fact is that I use CassiniDev every day in development and testing as do 100(0?)s of others. I am glad that others find value in the work but while I do my best as time allows, I cannot guarantee response time to issues and features and don't want to create improper expectations.




回答2:


UltiDev Cassini is not actually dormant. Its successor, UltiDev Web Server Pro (UWS), has been under development for more than a year and has become closer to IIS (in functionality, not in size or complexity). UltiDev Web Server Pro test builds are being released once every few weeks and are fairly stable already.

To comment on some of Sky's points:

  • New UWS bypasses ASP.NET runtime when serving static content.
  • UltiDev Cassini is not limited to loopback IPs/host names. New UWS uses http.sys kernel driver as listener - same as IIS.
  • UltiDev Cassini and UWS do queue requests but handle in parallel by pooled threads.
  • Inability to serve WCF with WsHttpBinding is not a limitation of SimpleWorkerRequests, but rather of WCF's assumption that whenever it's hosted in an ASP.NET AppDomain, then it's hosted either IIS or original Cassini, and nothing else. Attempts to convince MS to change that spanned more than two years and failed. In the end, WCF hosted in ASP.NET appdomain concludes that it's only safe when it's under IIS, while not making such assumption when it's hosted by a random .net process/appdomain w/o ASP.NET. Still, WCF with BasicHttpBinding works alright.

Cheers, Vlad.




回答3:


You could try Mono XSP or mod_mono with an Apache Environment or mono fast cgi server behind an nginx! What is your motivation to not use an IIS?




回答4:


My work is based on Dmitry Robsman's Cassini the 4.0 version of my VB port is based on the latest version i could find at that time on Dmitry's page he knows i made a VB port of his work as he send me an e-mail with CC to Lisa Feigenbaum to thank me for it .

I have never received feedback of annyone with complaints that something did not work , it just suited my needs just how it is ( so no need to work on it ) , i know there was in the past a CassineEX where the EX stood for Extended i downloaded the thing and at first wanted to use that one however it was pretty bloated in my opinion, i jut wanted a simple small and as fast as possible webserver, i did not needed log functions and all the other stuff that was implemented in the EX version .

But as you see i still support the VB version of Cassini it is not dead or left behind ,,, :-)



来源:https://stackoverflow.com/questions/5385006/which-build-of-cassini-should-i-choose-for-production-there-are-8-public-builds

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!