在开发过程中,我通常使用 Web 开发服务器(有时称为 Cassini)来测试 ASP.Net 应用程序。有时,当我发布到真实的 IIS 环境时,我注意到应用程序的行为有所不同。
那么,生产 IIS 服务器和 ASP.Net Web 开发服务器的行为方式有什么区别?我不是指功能集的差异(显然 IIS 有很多 WDS 中不存在的功能),而是它们处理 ASP.Net 的方式的差异。
顺便说一句:在对这个问题的回答中指出了一些不同之处,但我相信肯定还有更多。
我在这里和其他地方学到的一些东西:
各个服务器运行 ASP.NET 应用程序的安全上下文是不同的。对于开发服务器,这是当前用户的帐户。对于 IIS,这是通常具有有限权限的特殊用户(ASPNET 或 NETWORK SERVICES)的上下文。
对于网站,开发服务器使静态文件(图像和样式表等)受 ASP.NET 授权。但是,IIS 提供静态文件而不使用授权规则。
开发服务器不支持 SMTP,因此您不能直接从该服务器发送电子邮件。
开发服务器不支持 HTTPS。
两个服务器处理包含“//”的路径的方式有所不同。据报道,开发服务器更加宽容。
开发服务器随机选择端口而不是标准的 HTTP 端口 80。
一些差异可能是: