我尝试为 Web 套接字创建处理程序,但 context.IsWebSocketRequest 总是返回 false 并且无法在 Windows 7 上使用 IIS 8 Express。
如何启用 websocket 模块或我缺少的任何步骤?我有带有 IIS Express 动态 url 的 VS 2012 应用程序。
请帮忙。
WebSocket 协议需要在 IIS 8 中启用(参见http://www.codeguru.com/csharp/csharp/programming-html5-web-sockets-in-asp.net-4.5.htm)。此外,我不确定 Windows 7 是否支持 Web 套接字。我只看到需要 Windows 8 或 Windows Server 2012。
简短的回答是,您可以使用 IIS 8 Express 在 Windows 7 中针对 WebSocket编写应用程序,但实际上无法对其进行测试。它需要 Windows 8 或 Windows Server 2012。
WebSocket 支持
IIS 8.0 Express 支持编写 WebSocket 应用程序。有关详细信息,请参阅 Microsoft 的 MSDN 网站上的 WebSocket 协议规范或 System.Net.WebSockets 命名空间主题。
不适用于下层操作系统的 Windows Server 2012 和 Windows 8 功能
有一些功能需要特定于 Windows Server 2012 和 Windows 8 客户端的体系结构,当您在早期操作系统上安装 IIS 8.0 Express 时,这些功能将无法在下层工作:
服务器名称指示 (SNI)
中央证书存储
WebSocket 功能
然后,从System.Net.WebSockets MSDN 条目(强调我的):
Windows 7、Windows Vista SP2 和 Windows Server 2008 支持 System.Net.WebSockets 命名空间中的某些类。但是,Windows 8 和 Windows Server 2012 支持客户端和服务器 WebSocket 的唯一公共实现。这些类Windows 7、Windows Vista SP2 和 Windows Server 2008 支持的 System.Net.WebSockets 命名空间中的类元素是抽象类。这允许应用程序开发人员使用客户端 WebSocket 的实际实现来继承和扩展这些抽象类。