在 Windows 7 上带有 websockets 的 asp.net 5 Web 应用程序

Posted

技术标签:

【中文标题】在 Windows 7 上带有 websockets 的 asp.net 5 Web 应用程序【英文标题】:asp.net 5 web application with websockets on Windows 7 【发布时间】:2015-06-03 22:14:28 【问题描述】:

我有一个相对简单的 Web 应用程序,我目前正在移植到 asp.net 5。当前版本在一些 Windows 7 和 Server 2008 机器上的 IIS 下运行。 在我的软件的下一个版本中,我想通过 SignalR 将 C++ 客户端连接到 Web 应用程序。问题是当前版本的新 Signalr-Cpp 客户端仅通过 websockets 支持 SignalR。 不过,Windows 7 和 Server 2008 上的 IIS 不支持 websocket。 由于自托管解决方案对我来说很好,我的问题是:

当网络应用程序自托管时,是否可以在 Windows 7 / Server 2008 上通过 websockets 支持 Signalr?

更新:

我会接受 does self hosted signalr require windows server 2012 in order to use websockets? 作为答案,如果 Damian Edwards 在下面的 Tweet by David Fowler 中没有这个小评论,则表示

尽管使用 v3,在自托管服务器(如 Katana)中的 websockets 是可能的

这会改变情况吗?

最终更新

至少在 beta 6 中,当使用 Kestrel 托管应用程序并包括中间件 Microsoft.AspNet.WebSockets.Server 时,它可以在 Windows 7 上运行。

【问题讨论】:

does self hosted signalr require windows server 2012 in order to use websockets? 的可能副本 您可以为 WebSockets 使用另一个框架。有很多,我创建并维护了这个:vtortola.github.io/WebSocketListener 【参考方案1】:

这不可能……

SignalR Supported Platforms

对于 SignalR 使用 WebSockets,Windows Server 2012 或 Windows 8 是 必填

Does self hosted signalr require windows server 2012 in order to use websockets

Windows 8/2012 之前的 HTTP.SYS has no built in support 用于 WebSockets,因此尽管 .NET 4.5 包含 WebSocket 类,但它们 除非您在 Windows 8/2012 上运行 .NET 4.5+ 并且 将影响在 Windows

更新: 我的回答对 SignalR (2.2) 的当前版本有效。您包含的推文(相当老的顺便说一句)表明这在 v3 中是可能的,但它尚未发布,互联网上没有太多关于此版本的更改\功能的信息,我什至在 Win 上的 Katana 中找不到任何关于 WebSocket 支持的信息list of Github issues for v3

【讨论】:

好的,我接受这个作为答案,因为它对当前版本有效。我将尝试使用 asp.net 5 和 signalr 3 制作测试应用程序,看看这在新版本中是否仍然有效。 我对你的发现很感兴趣...... :) 发现:使用 Kestrel 托管应用程序,包括 Microsoft.AspNet.WebSockets.Server 并在 Configure() 中调用 app.UseWebSockets()。这适用于 Windows 7 上的 ASP.NET5 beta 6 :-)

以上是关于在 Windows 7 上带有 websockets 的 asp.net 5 Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

websockets无法从Windows 7客户端工作

Windows 7 x64 上带有 libNFC 的 RFIDIOt

带有 IE11 的 Selenium 3.0.1 在 Windows 10 上找不到元素(在带有 IE11 的 Windows 7 上运行良好)

无法删除 Windows 7 上带有尾随空格的文件夹 [关闭]

在带有 SP1 的 Windows 7 32 位上安装 Python 3.8

Websocket Autobahn Testsuite 未处理错误(Windows 和 Ubuntu)