如何在 IIS 上部署 SignalR 应用程序

问题描述 投票:0回答:1

我有一个简单的 signalR 应用程序(集线器是“/myNotifyHub”),用于在客户端之间发送通知。语言 c#,.net 6.0 核心。有很多相同的例子。但他们没有涵盖的是,

  1. 如何确保端口始终恒定?如果不是,我如何找到端口?也许如果部署在网站 http://www.myinternalwebsite.com/ 上的 IIS 上,客户端在点击“http://www.myinternalwebsite.com/myNotifyHub”时会自动找到端口?

  2. 在上述网站上部署这个 signalR Web 应用程序的过程是什么?

请不要让我指向 Microsoft 学习项目,它不涵盖上述内容,因为您可以在评论中阅读该主题的攻击流中的许多类似问题。

提前致谢。

尝试了什么:

尝试发布应用程序,但客户端无法解析中心 URL。它可以连接到基地网站。

只能用swagger本地连接。

c# iis web-applications signalr .net-6.0
1个回答
0
投票

您可以通过使用

/myNotifyHub path
指定集线器来确保 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 协议支持.

在 IIS 中托管网站和在 IIS 中托管 SignalR 网站没有什么特别的。

  1. 首先使用适当的部署方法发布应用程序(例如发布到文件夹等)。
  2. 将发布的文件复制到 IIS 服务器上的相应目录。
  3. 将您的 IIS 站点配置为指向已发布的文件夹。
  4. 根据您的 IIS 设置,您可能需要配置 URL 重写规则(如有必要),以确保正确处理 SignalR 请求。
  5. 如果您的 SignalR 中心托管在与您的客户端不同的域中,请确保正确配置 CORS 以允许它们之间进行通信。
© www.soinside.com 2019 - 2024. All rights reserved.