将https与signalR一起使用时出现404错误

时间:2015-08-05 14:47:29

标签: https signalr

我在https上使用signalR,我似乎完成了这个网站的所有内容: https://weblog.west-wind.com/posts/2013/Sep/23/Hosting-SignalR-under-SSLhttps

然而,当我的信号器试图连接时,我仍然收到404错误。

https://localhost:9000//negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22logshub%22%7D%5D&_=1438785507850 404 (Not Found)

这是我的OWIN启动程序,从https:// *:9000

开始
class Program
{
    static void Main(string[] args)
    {
        string dbFile = "logDB.sqlite";

        if (!File.Exists(dbFile))
        {
            SQLiteDataProviderCreator.Create();
            SQLiteDataProviderCreator.CreateDataBase();
        }

        IDataProvider provider = new SQLiteDataProvider("Data Source=logdb.sqlite;Version=3;PRAGMA journal_mode=WAL;Pooling=True;Max Pool Size=100;");

        LogsModule.Provider = provider;

        using (WebApp.Start<Startup>("https://*:9000/"))
        {
            Console.WriteLine("Launched site on Port 9000");
            Console.WriteLine("Press [enter] to quit...");
            Console.ReadLine();
        }
    }
}

这里的javascript应该允许它通过https连接。

    var hubUrl = "https://localhost:9000/signalr";
    $.connection.hub.url = hubUrl;
    $.connection.hub.logging = true;

我还使用makecert创建了一个证书,并将其绑定到端点0.0.0.0:9000。

2 个答案:

答案 0 :(得分:0)

有一个类似的问题,我必须以管理员身份运行该程序。

答案 1 :(得分:0)

对于遇到这种情况的任何其他人 hubUrl通常应该是:

var hubUrl =“https://localhost:9000/signalr/hubs”;

这甚至可以在提供的链接中显示。

此外,还需要确保在此脚本之前加载了集线器脚本:

  <script src='https://localhost:9000/signalr/hubs'></script>