【问题标题】:Differences in behaviour between IIS and the ASP.Net Web Development Server?IIS 和 ASP.Net Web 开发服务器之间的行为差​​异?
【发布时间】:2010-03-22 11:00:28
【问题描述】:

在开发过程中,我通常使用 Web 开发服务器(有时称为 Cassini)来测试 ASP.Net 应用程序。有时,当我发布到真实的 IIS 环境时,我注意到应用程序的行为有所不同。

那么,生产 IIS 服务器和 ASP.Net Web 开发服务器的行为方式有什么区别?我不是指功能集的差异(显然 IIS 有很多 WDS 中不存在的功能),而是它们处理 ASP.Net 的方式不同。

顺便说一句:在对this question 的回复中指出了一些不同之处,但我相信肯定还有更多。

【问题讨论】:

  • 有很多类似的问题(见右侧列表),例如:stackoverflow.com/questions/1988022/…
  • 确实 - 我已经链接到我的问题中更有用的问题之一。不过,我正在寻找比在其他地方找到的更全面的答案。
  • 这不应该是社区维基吗?

标签: asp.net iis cassini


【解决方案1】:

我在here 和其他地方收集到的一些东西:

  • 各个服务器运行 ASP.NET 应用程序的安全上下文不同。对于 Dev Server,这是当前用户的帐户。对于 IIS,这是通常具有有限权限的特殊用户(ASPNET 或 NETWORK SERVICES)的上下文。

  • 对于网站,开发服务器使静态文件(图像和样式表等)受 ASP.NET 授权。但是,IIS 提供静态文件而不使用授权规则。

  • 开发服务器不支持 SMTP,因此您无法直接从该服务器发送电子邮件。

  • 开发服务器不支持 HTTPS。

  • 两个服务器处理包含“//”的路径的方式有所不同。据报道,开发服务器更加宽容。

  • 开发服务器随机选择端口而不是标准的 HTTP 端口 80。

【讨论】:

    【解决方案2】:

    一些差异可能是:

    • 在使用 cassini 时不能使用虚拟目录。由于缺少文件夹权限,这可能会导致首次部署时出现意外行为。 (例如,您在本地机器上有一个 /image/ 目录,但在 IIS 中 /image/ 是指向 elsehwere 的虚拟目录)
    • 一些 第三方程序集(如 ComponenArt Web DLL)会导致问题 有特定的端口问题。这是最好的 使用 IIS 进行开发以最小化 部署时的兼容性问题。
    • 目标 IIS 的信任级别可能是 降低您的开发设置, 这可能会导致故障, 取决于您对 IIS,喜欢阅读 Uptime。

    【讨论】:

    • 你的最后一点有点绕道。在 same 机器上使用 Cassini 或 IIS 的信任级别将始终评估为相同。当您部署到生产环境时,您在 Cassini 还是 IIS 上开发应用程序并不重要,因为信任级别不受服务器控制。
    • sorry citronas - 您在第 1 点上弄错了,/v:"/" 是默认值,但您可以从 Web 属性页面和命令行指定任何您喜欢的 vdir 深度.第2点真的没有意义。 '有人说'。并且已经涵盖了第 3 项。我别无选择,只能——。干杯。
    • @code 诗人:1)我不知道。谢谢你告诉我。 2) 我不想命名特定的控件,但你让我别无选择;) ComponentArt Web DLL 有这种问题。有一次我在部署之前遇到了问题,因为它之前没有用 cassini 测试过。从那以后,我只使用 IIS 进行开发
    • 该死的。我之前的评论毫无意义:有一次我在部署之前遇到了问题,因为它之前没有用 IIS 测试过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 2012-10-08
    相关资源
    最近更新 更多