我在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。
答案 0 :(得分:0)
有一个类似的问题,我必须以管理员身份运行该程序。
答案 1 :(得分:0)
对于遇到这种情况的任何其他人 hubUrl通常应该是:
var hubUrl =“https://localhost:9000/signalr/hubs”;
这甚至可以在提供的链接中显示。
此外,还需要确保在此脚本之前加载了集线器脚本:
<script src='https://localhost:9000/signalr/hubs'></script>