背景:
最近在做一个Web项目,由于需要实现客户端和服务器的双向通信。比较方便的做法:把.Net Core项目发布部署在IIS。但是出现一个问题:WebSocket长连接数量超过10个,IIS就罢工了,不接受任何请求,导致页面卡死,一断开websocket连接,页面就恢复正常了
深入了解:
经查阅相关资料后发现普遍都会存在这个问题,可以看出确实是有这个限制。
解决方案:
按照提示我们打算使用kestrel作为部署方案,然后通过windows服务的托管项目的形式进行发布。
代码和实现:
1,在项目中引用图片中的nuget包
2,按照图片中的代码在Program.cs进行编写
3,重新生成和发布代码;
4,新增windows服务,打开cmd命令行
sc create 服务名称 binPath= 路径/程序.exe
5,查看服务和启动
结语:
当然,如果不需要windows服务的话,只需要吧.netcore发布后,点击exe启动即可(注意上文中的ip监听。默认Kestrel web服务器监听的是localhost:5000)。
最后,欢迎在评论区沟通。