我在控制台应用程序中有这段代码。
我正在尝试从 chrome 开发工具进行连接,但出现此错误,尽管问题肯定在 WCF 端:
WebSocket connection to 'wss://127.0.0.1:5650/Echo' failed: Error in connection establishment: net::ERR_CONNECTION_RESET
WSS没有命中我的服务器代码,没有例外,甚至没有日志。 WS 经过最少的修改就可以正常工作。我用的是微软WebSockets从 nuget 简化代码:
WebSocketHost server = new WebSocketHost(typeof(EchoWSService), new Uri("https://127.0.0.1:5650/Echo"));
var bindingSsl = WebSocketHost.CreateWebSocketBinding(true);
server.AddWebSocketEndpoint(bindingSsl);
server.Open();
我已经尝试过自定义证书验证器,但正如我所说,它没有击中我的代码。
现在我有相同的代码,除了服务器.Open()在 ASP.net 应用程序中使用服务路线,而且它工作得很好!是的,使用 SSL 和 VS 为 IIS Express 生成的自签名证书:
RouteTable.Routes.Add(new ServiceRoute("Echo", new TRWebSocketServiceFactory(), typeof(EchoWSService)));
仅浏览器端是:
var ws = new WebSocket('wss://127.0.0.1:5650/Echo')
In 网络配置我没有超过
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
那么为什么我的自托管 WCF 不能在简单的控制台应用程序中运行呢?