ASP.NET开发服务器或Localhost IIS?

时间:2008-11-11 17:59:06

标签: asp.net iis localhost cassini

目前,我们的开发团队在其本地计算机上设置了他们正在IIS中工作的所有网站。我们正在考虑转而使用内置的ASP.NET开发服务器。

这是个好主意吗?使用ASP.NET dev Server有哪些优缺点?我们应该注意哪些问题?

感谢。

注意:在Win XP / IIS 5 / VS2005上运行

修改

没有意识到它被称为卡西尼。Cassini v IIS here的更多答案。

10 个答案:

答案 0 :(得分:32)

ASP.NET DevService没有任何内容可以执行IIS无法做到的事情(您可以设置断点等,只需将VS调试器附加到ASP.NET运行时)。

但是,ASP.NET Dev WebService并不代表真正的生产环境,因此您可能会遇到在部署到生产环境时不会发现的陷阱。

因此,我要求在本地计算机上使用IIS完成所有开发。在IIS中配置站点并不需要太多工作。

答案 1 :(得分:25)

这是一个非常好的主意。以下是一些原因:

  • 您不再需要管理员访问您的计算机以进行Web开发(它仍然有用)。
  • 测试快速更改并继续工作要轻松得多,faster iteration cycles are good
  • 它可以简化开发环境的设置和部署。
  • XP版本的IIS具有Cassini支持的服务器版本中不存在的限制。

我所反对的唯一论据是,有一些非常罕见的边缘情况,其中Cassini内置服务器并不完全模仿IIS,因为您使用的是奇数端口号。我怀疑你会遇到它们,并且使用Cassini作为主要开发环境的 并不妨碍开发人员也可以访问计算机上的IIS。 实际上,我的对于大多数小型工作,首选安装程序是Cassini,然后在将代码移回共享源存储库之前部署到我的本地IIS以进行更深入的测试。

<强> [编辑]
忘了重写网址。你确实需要IIS。内置XP IIS限制的一个例子是你只限于XP中的一个站点(可以有多个应用程序,但这是另一回事)。

答案 2 :(得分:5)

我必须为一个项目切换(返回)IIS,因为我需要设置一些虚拟目录,这在ASP.NET Development Web Server上是不可能的。

答案 3 :(得分:5)

正如我在此处所述:https://stackoverflow.com/questions/103785/what-are-the-disadvantages-of-using-cassini-instead-of-iis您的开发人员需要注意Cassini以本地用户身份运行,该用户通常是开发人员的管理员帐户。该开发将能够访问其帐户可以访问的任何文件或资源,这与他们在IIS 6服务器上看到的完全不同。

使用IIS和vdirs而不是单独的Cassini实例,另一件非常重要的事情是调试Web服务要容易得多。

答案 4 :(得分:2)

我知道有一点我的身份验证在Cassini上没有按预期运行(内置在开发服务器中)

另外,如果您需要测试ISAPI插件(例如重写器)之类的东西,我不确定它是如何在Cassini上完成的。

不断变化的港口对我来说也很令人不安。此外,对于解决方案中的每个Web项目,它会激活Casini服务器的另一个实例,每个实例需要20到50 MB的内存。

我一直使用IIS,设置起来非常简单,你们已经这样做了......

答案 5 :(得分:2)

我使用了这两种方法,我更喜欢在本地使用IIS而不是使用内置服务器。至少,您与最终部署设置更加一致。

答案 6 :(得分:1)

此外,使用IIS 5.1时,请务必获取JetStat IIS Admin,它会添加在IIS 5上禁用的功能,例如可以设置多个站点。

答案 7 :(得分:1)

我遇到了asp.net dev服务器的以下限制:

  1. 不支持虚拟目录。如果您在应用中需要它们,IIS似乎是您唯一的选择

  2. 经典的asp页面不能在dev服务器上运行。因此,如果你有一个混合的网络应用程序(就像我现在在我的客户端),IIS似乎是解决方案

  3. 如果您需要管理界面来配置设置,IIS可以更好地运行

  4. 当然,IIS要求您是本地管理员。

答案 8 :(得分:1)

在VS12中,开发服务器速度慢,需要几秒钟才能下载2kbyte文件。这在vs10中没有发生。当你有一堆jquery文件和css这是一个真正的问题。此外,每个页面都会重新查询所有css / js文件。非常慢的回归测试。

答案 9 :(得分:0)

我与dev服务器遇到的主要问题是SerializationExceptions,其中包含存储在线程上下文中的自定义安全主体。详情here