升级到 .NET Framework 3.5 后,我无法在 IIS6 中将 80 设置为 HTTPS 端口。只有卸载 .NET Framework 3.5 后,IIS 才能重新接受 80 作为 HTTPS 端口并正常运行。
问题是这种行为是设计使然还是由于 IIS 和 .NET Framework 3.5 之间意外交互而导致的错误。
据我理解,Dot Net Framework 应该与 Web 服务器无关,而 IIS 应该与软件框架无关。因此,如果这种行为确实是一种设计选择,那么为什么它没有出现在 Dot Net Framework 的早期版本中,例如 1.1 2.0?
复现步骤: 1.在IIS6中设置80为HTTPS端口
安装.Net Framework 3.5
运行“inetmgr”,看来该网站已停止。
从 https 配置中删除端口 80 或卸载框架 3.5,网站即可重新启动
答案1
一些评论:
您说得对,.NET 和 IIS 是分开的,它们不应该相互依赖或冲突。
如果你在端口 80 上设置 HTTPS,这会破坏大多数 Web 浏览器都支持 HTTPS。HTTPS 应该使用 443。如果有人访问 ;它将无法工作;同样,如果他们访问 ,它也不会工作。只有当他们访问 时,它才会工作。因此,拒绝此配置可能是设计选择。
您是否禁用了端口 80 上的 HTTP?如果您在禁用 HTTP 之前尝试启用端口 80 上的 HTTPS,那么这将是端口冲突,并且可能是您的服务器无法启动的原因。这可能只是在您升级 .NET 时发生的巧合。