C# IIS中的主机信号器

C# IIS中的主机信号器,c#,iis,signalr,signalr-hub,C#,Iis,Signalr,Signalr Hub,我只是想知道,在过去的几天里,它一直在找我,有没有可能在IIS中托管一个信号中心?有可能吗?我找到了一个称为“自托管”的解决方案,但它需要控制台应用程序的帮助。我想在我的IIS中托管信号集线器,这可能吗?有人能给我举个例子吗 我要发布自我托管的代码,我想我可能会有所帮助 class Program { static void Main(string[] args) { // This will *ONLY* bind to loca

我只是想知道,在过去的几天里,它一直在找我,有没有可能在IIS中托管一个信号中心?有可能吗?我找到了一个称为“自托管”的解决方案,但它需要控制台应用程序的帮助。我想在我的IIS中托管信号集线器,这可能吗?有人能给我举个例子吗

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

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非常简单,只需使用SignalR Hub创建一个网站,然后将其发布到IIS中的一个网站

然后,信号机集线器将位于


如果您在这里学习本教程,您将了解您需要什么

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

fullIP=@“http://“+”192.168.1.10“+@”:9001
SignalR=WebApp.Start(完整IP)

默认情况下,IIS上未启用Websocket支持。它是在IIS 8中引入的,必须通过windows的可选功能启用:

可选功能->IIS->WWW服务->应用程序开发功能->Websocket协议

免责声明:我是在自己问了一个问题后发现的,所以我从那里复制了我的答案:


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

signalR应该发布在特定网站上,还是可以作为WEB API托管在同一url上?我已经创建了WEB API项目,并在其中实现了Hub和signalR所需的所有逻辑。从VS运行工作正常,但在服务器上托管IIS后,它无法正常工作,并且没有异常。所以,我想知道我是否需要创建另一个不同于WEB API的网站,并在那里承载我的信号逻辑。我不明白为什么这个问题被标记为正确。链接教程是关于带owin的自托管signalR的,因此它没有解决OP关于如何在IIS托管的应用程序中使用signalR的问题。在IIS应用程序中简单地创建一个信号集线器没有任何效果。@TylerJones我完全同意。我看了那篇文章两遍,因为我想我错过了IIS部分。该链接与IIS托管@Tim B无关。从他们的网站复制和粘贴不会改变任何事情。IIS中没有托管信号器的示例。告诉别人这很容易并不能告诉你怎么做。