【问题标题】:ASP.NET Development Server or Localhost IIS?ASP.NET 开发服务器或本地主机 IIS?
【发布时间】:2010-09-21 20:28:30
【问题描述】:

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

这是个好主意吗?使用 ASP.NET 开发服务器的优点/缺点是什么?有什么我们应该注意的问题吗?

谢谢。

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

编辑:

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

【问题讨论】:

  • Cassini 是仍在开发中的旧名称。 Cassini 之于 ASP.NET 开发服务器就像 Atlas 之于 MS ASP.NET AJAX
  • 我把这个链接留在这里,以便将来对任何人都有帮助,因为它概述了差异 - asp.net/web-forms/tutorials/deployment/…

标签: asp.net iis localhost cassini


【解决方案1】:

没有什么是 ASP.NET Dev WebService 可以做的,而 IIS 不能(您可以设置断点等,只需将 VS 调试器附加到 ASP.NET 运行时)。

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

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

【讨论】:

  • 同意。以这种方式运行项目,我遇到了几个问题。您应该始终使用本地 IIS。
  • +1 绝对是,本地 IIS 最能避免(并在发布前解决)任何问题
  • 本地 IIS 不会为您提供编辑和继续的优势。将 IIS7 作为旧 Cassini 的替代品是理想的选择
  • 即将推出(或在您阅读本文时可能可用)是 IIS Express,它将 IIS 7.5 带给非管理员用户,并允许开发人员使用 IIS 7.x 功能,即使主机操作系统是经验值。见weblogs.asp.net/scottgu/archive/2010/06/28/…
  • -1 因为你说 ASP.NET Dev WebService 没有什么可以做而 IIS 做不到。我不认为你是正确的。 (见@Jaap 的评论。)
【解决方案2】:

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

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

我知道的唯一反对意见是,有几个非常罕见的边缘情况,即 Cassini 内置服务器不能完全模仿 IIS,因为您使用的是奇数端口号。我怀疑您是否会遇到它们,并且使用 Cassini 作为主要开发环境并不妨碍开发人员也可以访问机器上的 IIS。 事实上,我的对于大多数小型工作,首选设置是 Cassini,然后部署到我的本地 IIS 以进行更深入的测试,然后再将代码移回共享源存储库。

[编辑]
忘记了url重写。为此,您确实需要 IIS。内置 XP IIS 的一个限制示例是,您只能在 XP 中使用一个站点(可以有多个应用程序,但这是另一回事)。

【讨论】:

  • Cassini 将每个请求都通过管道传输到 ASP.NET 运行时,而 IIS 没有。 Cassini 不能使用 ISAPI...IIS 可以。您可以将 Visual Studio 配置为在启动应用程序时在 IIS 上启动 localhost,它会比加载 cassini 启动得更快。
  • 我和乔尔一起做这个。除非我遇到 Cassini flat 无法做到的事情(URL 重写),否则我对 Cassini 没有任何问题,并且觉得它非常方便。
  • 有趣的是,这样的答案被否决了。我认为提出的意见是有价值的——但即使我确实不同意它,投票否决也不是这样做的方式。
  • 是否需要管理员才能运行 iis?
  • @Quandary 请注意,当我第一次写这篇文章时,Windows 7 或 IIS 7 都还没有推出。 Cassini 使用 Windows XP 版本的 IIS 为开发人员解决了一些实际问题。
【解决方案3】:

我不得不为一个项目切换(返回)到 IIS,因为我需要设置一些 虚拟目录,这在 ASP.NET 开发 Web 服务器上是不可能的。

【讨论】:

    【解决方案4】:

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

    另一个很大的问题是使用 IIS 和 vdirs 来调试 Web 服务比使用单独的 Cassini 实例要容易得多。

    【讨论】:

      【解决方案5】:

      我知道我曾经遇到过身份验证在 Cassini(内置开发服务器)上无法正常工作的问题

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

      不断变化的端口也让我感到相当不安。此外,对于您解决方案中的每个 Web 项目,它都会启动另一个 Casini 服务器实例,每个实例占用 20 到 50 MB 的内存。

      我一直在使用 IIS,它很容易设置,而且你们已经在这样做了...

      【讨论】:

      • 同意重新。端口号。我们目前为我们的开发网站的链接生成一个 RSS 提要,我认为我不能让它与 Cassini 一起使用
      • 在 Web 项目属性屏幕的“Web”选项卡上,您可以指定静态端口。对于网站项目,这是在标准属性窗口中。
      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

        • 谢谢,会看看,这样就不用添加代码来处理 VDirs。
        【解决方案8】:

        我在使用 asp.net 开发服务器时遇到了以下限制:

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

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

        3. 如果您需要管理 UI 来配置设置,IIS 会更好

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

        【讨论】:

          【解决方案9】:

          我注意到的另一个区别是 Cassini 作为 32 位进程运行并且您无法控制它,而您可以控制 IIS 应用程序的应用程序池以禁止 32 位(假设您的 IIS 运行在 64位服务器)。如果您的 Web 应用程序要在 64 位进程(例如 SharePoint Foundation/Server 2010)中调用 API,这一点尤其重要。当您使用 Cassini 作为调试服务器来调试您的 Web 应用程序时,您将获得“URL 上的 Web 应用程序可以找不到。请验证您是否已正确键入 URL”在实例化对象时键入错误。如果您使用 IIS 进行调试,该应用程序在以 64 位运行的应用程序池中运行,并且具有允许访问共享点数据库的身份,那么您将能够正确调试。

          【讨论】:

            【解决方案10】:

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

            【讨论】:

            • 我从未注意到任何此类延迟。您的安装或浏览器设置一定有问题。 (我记得 Firefox 发生了一些奇怪的事情,使用 localhost127.0.0.1,但我不记得它是什么以及修复了什么)
            【解决方案11】:

            我在开发服务器上遇到的主要问题是带有存储在线程上下文中的自定义安全主体的 SerializationExceptions。详情here.

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-08-05
              • 2023-04-01
              • 2019-02-14
              • 2022-10-12
              • 1970-01-01
              • 1970-01-01
              • 2015-05-30
              相关资源
              最近更新 更多