目前,我们的开发团队在他们的本地机器上设置了他们在 IIS 中工作的所有网站。我们正在考虑改用内置的 ASP.NET 开发服务器。
这是一个好主意吗?使用 ASP.NET 开发服务器的优点/缺点是什么?有什么我们应该注意的问题吗?
谢谢。
注意:在 Win XP / IIS 5 / VS2005 上运行
编辑:
没有意识到它被称为 Cassini .. Cassini v IIS here的更多答案。
目前,我们的开发团队在他们的本地机器上设置了他们在 IIS 中工作的所有网站。我们正在考虑改用内置的 ASP.NET 开发服务器。
这是一个好主意吗?使用 ASP.NET 开发服务器的优点/缺点是什么?有什么我们应该注意的问题吗?
谢谢。
注意:在 Win XP / IIS 5 / VS2005 上运行
编辑:
没有意识到它被称为 Cassini .. Cassini v IIS here的更多答案。
ASP.NET Dev WebService 没有什么是 IIS 不能做到的(您可以设置断点等,只需将 VS 调试器附加到 ASP.NET 运行时)。
但是,ASP.NET Dev WebService 并不代表真正的生产环境,因此您可能会遇到部署到生产环境时不会预料到的陷阱。
因此,我要求所有开发都在本地机器上使用 IIS 完成。在 IIS 中配置站点并不需要太多工作。
这是一个非常好的主意。以下是一些原因:
我知道反对的唯一论点是有几个非常罕见的边缘情况,其中 Cassini 内置服务器不完全模仿 IIS,因为您使用的是奇数端口号。我怀疑您是否会遇到它们,并且使用 Cassini 作为主要开发环境并不妨碍开发人员也可以访问机器上的 IIS。 事实上,对于大多数小型工作,我首选的设置是 Cassini,然后部署到我的本地 IIS 以进行更深入的测试,然后再将代码移回共享源存储库。
[编辑]
忘记了 url 重写。为此,您确实需要 IIS。内置 XP IIS 的一个限制示例是,您只能在 XP 中使用一个站点(可以有多个应用程序,但那是另一回事)。
正如我在这里所说:https ://stackoverflow.com/questions/103785/what-are-the-disadvantages-of-using-cassini-instead-of-iis您的开发人员需要注意 Cassini 以本地用户身份运行,这通常是开发人员的管理员帐户。开发人员将能够访问他们的帐户可以访问的任何文件或资源,这与他们在 IIS 6 服务器上看到的完全不同。
另一个很大的问题是使用 IIS 和 vdirs 而不是单独的 Cassini 实例来调试 Web 服务要容易得多。
我不得不为一个项目切换(返回)到 IIS,因为我需要设置一些虚拟目录,而这在 ASP.NET 开发 Web 服务器上是不可能的。
我已经使用了这两种方法,我更喜欢在本地使用 IIS,而不是使用内置服务器。至少您与最终的部署设置更加一致。
我知道在某一时刻我遇到了一个问题,即身份验证在 Cassini 上无法按预期工作(内置开发服务器)
此外,如果您需要测试 ISAPI 插件(例如重写器)之类的东西,我不确定在 Cassini 上是如何完成的。
不断变化的端口也让我感到相当不安。此外,对于您的解决方案中的每个 Web 项目,它都会启动另一个 Casini 服务器实例,每个实例占用 20 到 50 MB 的内存。
我一直在使用 IIS,它很容易设置,而且你们已经在这样做了……
我在使用 asp.net 开发服务器时遇到了以下限制:
不支持虚拟目录。如果您的应用程序中需要它们,IIS 似乎是您唯一的选择
经典的 asp 页面不在开发服务器中运行。因此,如果您有一个混合 Web 应用程序(就像我现在在我的客户端上一样),IIS 似乎是解决方案
如果您需要管理 UI 来配置设置,IIS 效果更好
当然 IIS 要求您是本地管理员。
此外,在使用 IIS 5.1 时,一定要获取JetStat IIS Admin,它添加了在 IIS 5 上开箱即用的功能,例如能够设置多个站点。
我注意到的另一个区别是 Cassini 作为 32 位进程运行并且您无法控制它,而您可以控制 IIS 应用程序的应用程序池以禁止 32 位(假设您的 IIS 在 64 位服务器上运行)。如果您的 Web 应用程序要在 64 位进程(例如 SharePoint Foundation/Server 2010)中调用 API,这一点尤其重要。当您使用 Cassini 作为调试服务器来调试您的 Web 应用程序时,您将获得“URL 上的 Web 应用程序可以找不到。验证您是否正确键入了 URL”在实例化对象时键入错误。如果您使用 IIS 进行调试,该应用程序在以 64 位运行的应用程序池中运行,并且具有允许访问共享点数据库的标识,那么您将能够正确调试。
在 VS12 中,开发服务器很慢,下载一个 2kbyte 的文件需要几秒钟。这在 vs10 中没有发生。当您有一堆 jquery 文件和 css 时,这是一个真正的问题。此外,每个页面都需要所有 css/js 文件。非常非常慢的回归测试。
我在开发服务器上遇到的主要问题是带有存储在线程上下文中的自定义安全主体的 SerializationExceptions。详情在这里。