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上不启用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);