5

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

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

顺便说一句:在对这个问题的回答中指出了一些不同之处,但我相信肯定还有更多。

4

2 回答 2

4

我在这里和其他地方学到的一些东西:

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

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

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

  • 开发服务器不支持 HTTPS。

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

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

于 2010-03-22T11:35:25.960 回答
0

一些差异可能是:

  • 使用 cassini 时不能使用虚拟目录。由于缺少文件夹权限,这可能会导致首次部署时出现意外行为。(例如,您在本地机器上有一个 /image/ 目录,但在 IIS 中 /image/ 是指向 elsehwere 的虚拟目录)
  • 一些第三方程序集(如 ComponenArt Web DLL)会导致特定端口问题。最好使用 IIS 进行开发,以最大限度地减少部署时的兼容性问题。
  • 目标 IIS 的信任级别可能低于您的开发设置,这可能会导致故障,具体取决于您对 IIS 执行的操作,例如读取正常运行时间。
于 2010-03-22T11:17:26.657 回答