5

我发现了几个版本的由 Microsoft 构建的无 IIS 的 Cassini 网络服务器。我会使用它,但我不确定哪个最好,因为有很多分支/构建:

您推荐上述分叉中的哪个 Web 服务器;Hostable Web Core 是新的 Cassini,还是我仍然依赖带有 HWC 的 IIS?

如果您能详细说明,我将不胜感激:

  • 项目安全
  • 如果 fork 适合服务于轻量级的“Admin”界面
  • 网站功能
  • 对 IIS 的任何依赖(例如 HWC)。
4

4 回答 4

8

我目前的观点是:

这些,包括我的代码,都不适合生产目的。所有共享的 simpleworker 使用的限制和限制不适用于关键任务(我认为“生产”的意思)流程。其中最重要的是完全无法在 LoopBack 以外的任何 IP 上提供 WCF(不包括 WebHttp 绑定、IIRC)。另一个限制是它们将所有请求作为一个队列提供服务,一次一个,截至今天,所有请求都由运行时处理,包括静态文本和图像文件。这可能会在 CassiniDev 中发生变化(如果资金到位,迟早会发生变化)。在 IIRC 的所有实现中,缓存也几乎不存在。

  • HWC 需要 IIS7
  • 原件是博物馆藏品
  • 在我们中的一些人分叉之后,德米特里从卡西尼公司退休,所以不要在那里寻找更新。如果您出于某种奇怪的原因选择启动另一个 cassini 分叉,他的代码是一个很好的起点。
  • Cassini++ 是 Dmitry 的代码,有一些增强,主要是使用外部 IP 的能力,但自从我 2 年前开始 CassiniDev 之前就没有任何活动。
  • zippy1981 最初分叉 Dmitry 以解决内容类型问题,因为我在实现它时有点懒惰。自 04-2010 以来没有活动
  • 我对 MPosseth 的 VB 端口没有经验,似乎处于休眠状态。

  • UtiDev 有一些很棒的功能,例如作为服务运行,并且不是严格的 Cassini 分支。它是免费且可再分发的,但自 2008 年以来一直处于休眠状态。

CassiniDev 是我经常使用的工具,其功能反映了这一点。它支持 2.0、3.5 和 4.0。它构建为 exe、dll 和 100% 兼容(增强)替代 Visual Studio 的开发服务器。通过测试框架和持续集成环境以及独立的 exe 并嵌入到您自己的应用程序中,它适用且易于使用。

Visual Studio 2010 的最新版本 WebDev.WebServer 已通过反射器运行以识别更改,但发现的更改很少,并且意图已在 CassiniDev 中实现。

开发很活跃,并且已经获得了一些公司资金来推动一些新功能,例如:用于将 html/javascript 测试结果发送回 NUnit、MSTest 等的虚拟端点;可以打开浏览器、提供页面和关闭浏览器的浏览器驱动程序;支持插件的配置系统的初步开始,当前唯一的实现是一个 CORS 插件,它将通过 CORS、XDomainRequest 和 Flash 发送支持跨域 javascript 所需的标头。

codeplex 登陆页面显示它的年龄,并且文档多年来没有更新,但源显示了活动,我通常有快速启动功能的示例/测试。我希望有时间写一些合适的文档。

错误得到修复,功能在时间允许的情况下得到实施。

在我看来,唯一的选择是在 CassiniDev 和 UtiDev 之间。显然我选择了 CassiniDev,根据个人需求,UtiDev 可能更合适。

UtiDev 是一个非常好的产品,但处于休眠状态。它有一些我最终会窃取的不错的功能,例如作为服务运行和在一个 IP 上为多个站点提供服务。

我的.02。虽然看起来我在无耻地插入自己的工作,但事实上我每天都在开发和测试中使用 CassiniDev,就像 100(0?)s 其他人一样。我很高兴其他人在工作中发现了价值,但是虽然我会在时间允许的情况下尽力而为,但我不能保证对问题和功能的响应时间,也不想产生不恰当的期望。

于 2011-03-22T08:41:28.463 回答
2

UltiDev Cassini 实际上并没有处于休眠状态。它的继任者UltiDev Web Server Pro (UWS) 已经开发了一年多,并且已经更接近 IIS(在功能上,而不是在大小或复杂性上)。UltiDev Web Server Pro 测试版本每隔几周发布一次,并且已经相当稳定。

评论 Sky 的一些观点:

  • 提供静态内容时,新的 UWS 会绕过 ASP.NET 运行时。
  • UltiDev Cassini 不仅限于环回 IP/主机名。新的 UWS 使用 http.sys 内核驱动程序作为侦听器 - 与 IIS 相同。
  • UltiDev Cassini 和 UWS 对请求进行排队,但由池线程并行处理。
  • 无法使用 WsHttpBinding 为 WCF 提供服务并不是 SimpleWorkerRequests 的限制,而是 WCF 的假设,即每当它托管在 ASP.NET AppDomain 中时,它就托管在 IIS 或原始 Cassini 中,仅此而已。试图说服 MS 进行更改的尝试持续了两年多,但都失败了。最后,托管在 ASP.NET appdomain 中的 WCF 得出结论,它只有在 IIS 下才是安全的,而当它由不带 ASP.NET 的随机 .net 进程/appdomain 托管时,它不会做出这样的假设。尽管如此,带有 BasicHttpBinding 的 WCF 工作正常。

干杯,弗拉德。

于 2011-07-08T16:45:54.880 回答
0

您可以尝试使用 Apache 环境的 Mono XSP 或 mod_mono 或 nginx 后面的单声道快速 cgi 服务器!您不使用 IIS 的动机是什么?

于 2011-03-22T19:57:53.017 回答
0

我的工作基于 Dmitry Robsman 的 Cassini,我的 VB 端口的 4.0 版本基于我当时在 Dmitry 的页面上可以找到的最新版本,他知道我制作了他工作的 VB 端口,因为他给我发了一封带有 CC 的电子邮件感谢 Lisa Feigenbaum。

我从来没有收到任何人抱怨某些东西不起作用的反馈,它只是适合我的需要(所以不需要工作),我知道过去有一个 CassineEX,EX 代表扩展 i下载了这个东西,一开始想用那个,但在我看来它很臃肿,我只想要一个简单的小而尽可能快的网络服务器,我不需要日志功能和在 EX 中实现的所有其他东西版本 。

但正如你所见,我仍然支持卡西尼的 VB 版本,它并没有死掉或被抛在后面 ,,, :-)

于 2011-03-23T11:04:44.773 回答