IIS中的主机SignalR

本文关键字:SignalR 主机 IIS | 更新日期: 2023-09-27 18:26:47

我只是想知道,过去几天它一直在找我,有可能在IIS中托管SignalR集线器吗?那件事可能发生吗?我找到了一个名为"自托管"的解决方案,但它是在控制台应用程序的帮助下实现的。我想在我的IIS中托管SignalR集线器,这可能吗?有人能给我举个例子吗?

我要发布代码的自我托管我想我可能会帮助

class Program
    {
        static void Main(string[] args)
        {
            // This will *ONLY* bind to localhost, if you want to bind to all addresses
            // use http://*:8080 to bind to all addresses. 
            // See http://msdn.microsoft.com/en-us/library/system.net.httplistener.aspx 
            // for more information.
            string url = "http://localhost:8080";
            using (WebApp.Start(url))
            {
                Console.WriteLine("Server running on {0}", url);
                Console.ReadLine();
            }
        }
    }
    class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.UseCors(CorsOptions.AllowAll);
            app.MapSignalR();
        }
    }
    public class MyHub : Hub
    {
        public void Send(string name, string message)
        {
            Clients.All.addMessage(name, message);
        }
    }

IIS中的主机SignalR

默认情况下,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->WWW服务>应用程序开发功能->Websocket协议

免责声明:我自己问了一个问题后发现了这一点,所以我从那里复制了我的答案:https://stackoverflow.com/a/61411666/4364057

如果有人在我之后发现了这个问题,我想为这个问题提供一个有效的答案,我认为这个答案比公认的答案更好。

在IIS中托管SignalR就像创建一个带有SignalR集线器的网站,然后将其发布到IIS中的网站一样简单。

SignalR集线器将位于http://www.yourdomain.com/

如果你在这里学习本教程,你会发现你需要什么http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

自托管信号服务器的部署是通过管理员权限运行控制台exe。192.168.1.10是本地计算机IP。其他设备可以通过信号器连接url。

fullIP=@"http://"+"192.168.1.10"+@":9001"SignalR=WebApp.Start(fullIP);