我有一个简单的signalR应用程序(中心是“/myNotifyHub”)用于在客户端之间发送通知。语言c#,.net 6.0核心。有很多例子都是一样的。但他们没有涵盖的是,
1.如何确保端口始终不变?如果不是,如何找到端口?也许如果部署在网站http://www.myinternalwebsite.com/上的IIS上,客户端在点击“http://www.myinternalwebsite.com/myNotifyHub“时会自动找到端口?
1.在上面提到的网站上部署这个signalR web应用程序的过程是什么?
请不要把我指向微软的学习项目,它不包括上述内容,因为你可以在评论中看到许多类似的问题,在这个主题的攻击流。
先谢了。
尝试了什么:
已尝试发布应用程序,但客户端无法解析中心URL。它可以连接到基础网站。
只能和斯瓦格本地连接。
1条答案
按热度按时间dwbf0jvd1#
通过使用
/myNotifyHub
路径指定集线器,您可以确保SignalR集线器有一个特定的URL。现在,当您的SignalR应用程序部署到IIS并且您的网站可以在
http://www.myinternalwebsite.com/
上访问时,您的SignalR集线器将在http://www.myinternalwebsite.com/myNotifyHub
上可用。该端口将由IIS管理,您无需担心指定它。关于部署:
默认情况下,IIS上不启用WebSocket支持。它是在IIS 8中引入的,必须从Windows可选功能https://learn.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support中启用。
在IIS中托管网站和在IIS中托管SignalR网站没有什么特别之处。
1.首先,使用适当的部署方法(例如,发布到文件夹等)发布应用程序。
1.将已发布的文件复制到IIS服务器上的相应目录。
1.将IIS站点配置为指向已发布的文件夹。
1.根据您的IIS设置,您可能需要配置URL重写规则(如有必要),以确保正确处理SignalR请求。
1.如果您的SignalR集线器托管在与您的客户端不同的域中,请确保正确配置CORS以允许它们之间的通信。