我正在使用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安装程序中可能缺少一个包?
预先感谢此处的任何输入!!!
答案 0 :(得分:2)
你在“多一点搜索”之后所做的一切都走错了路。请停止这样做。
简短的回答是,你正试图让一些不可能的工作,因为微软本身不愿意在Windows Vista和7上支持WebSockets(很久以前就不再支持主流支持)。尝试使用其他替代方法,并停止浪费你的时间。
答案很长,
http.sys
和HTTP API,这是一个操作系统组件。随着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。