Windows 7 Websocket PlatformNotSupportedException

时间:2017-12-28 17:26:40

标签: .net azure iis websocket windows-7

我正在使用Microsoft.Azure.Devices.Client NuGet包处理应用程序。在Windows 10上一切都运行良好,但在Win7机器上进行测试时,我得到了这个聚合异常。

  

System.PlatformNotSupportedException:WebSocket协议不是   在这个平台上得到支持。

在我周围搜索时,我发现有几个主题说这在Windows 7上不受支持,并且有一些"微软正在研究它"输入评论。

https://github.com/5andr0/PogoLocationFeeder/issues/229

自2016年以来,我对更新或解决方案的了解并不多。

更多搜索引导我沿着Microsoft Web Platform Installer的路径走下去 https://www.microsoft.com/web/downloads/platform.aspx

我们尝试安装" IIS 10.0 Express"和#34; Microsoft Azure PowerShell"仍然没有运气。

我们正在W7上安装我的W10机器上的所有Web平台......其中大多数似乎都支持1对1。

是否可以评论W7是否已完成或计划?

或者在尝试做一些不可能的工作之前,我是否真的需要向另一个方向看?

除了Web服务安装之外,我的W7安装程序中可能缺少一个包?

预先感谢此处的任何输入!!!

2 个答案:

答案 0 :(得分:2)

你在“多一点搜索”之后所做的一切都走错了路。请停止这样做。

简短的回答是,你正试图让一些不可能的工作,因为微软本身不愿意在Windows Vista和7上支持WebSockets(很久以前就不再支持主流支持)。尝试使用其他替代方法,并停止浪费你的时间。

答案很长,

  • Microsoft目前的假设始终是WebSockets需要Windows 8及更高版本。这是因为限制在于http.sys和HTTP API,这是一个操作系统组件。
  • 通过重用他们对macOS和Linux的WebSockets支持的托管实现,Microsoft确实拥有支持Windows Vista上的WebSockets和7 for .NET应用程序的技术,而无需更改操作系统级别。他们尚未完成所有工作,https://github.com/dotnet/corefx/issues/9503

随着GitHub问题状态(up-for-grabs)显示,如果您愿意,可以继续工作并自助。我不会说这是不可能的,但与转向可行的替代方案相比,它并不简单。

当然,如果你雄心勃勃并且能够做出艰难的事情,你肯定应该加强并解决它,不仅是为了你自己,而且是为了像你这样的所有类似的开发者。

祝你好运。

[2018年3月27日更新]

https://github.com/dotnet/corefx/pull/26429

Microsoft最终在任何地方启用托管实施(UWP除外)。因此,如果您的应用程序面向.NET Core 2.1及更高版本,它应该能够在Windows Vista / 7上运行WebSockets。关于.NET Framework应用程序的故事尚不清楚。

答案 1 :(得分:2)

我遇到了同样的问题,并使用以下nuget包解决了该问题:

System.Net.WebSockets.Client.Managed

https://www.nuget.org/packages/System.Net.WebSockets.Client.Managed/

github来源:https://github.com/PingmanTools/System.Net.WebSockets.Client.Managed

  

创建一个适用于该平台的ClientWebSocket。如果支持,则使用System.Net.WebSockets.ClientWebSocket;如果不支持,则使用System.Net.WebSockets.Managed.ClientWebSocket。