三天后,这个问题使我陷入了困境。
SignalR没有在我的预测试环境中创建它的后台SQL模式和表,其中包含单个SQL server +负载平衡的web服务器。
我查过了
我支持过SignalR追踪。只有我的跟踪条目被写入-没有从SignalR。
如果我在发布模式下构建,一切都可以在我的开发环境中工作(包括跟踪)。
以下是我的跟踪增强启动过程
//Step 1: Check tracing works
var trace = GlobalHost.TraceManager["TestTrace"];
trace.TraceInformation("Preparing to start SignalR");
//Step 2: Check DB access rights
var connectionString = ConfigurationManager.ConnectionStrings["SignalR"].ConnectionString;
var schema = Guid.NewGuid().ToString("N");
using (var sqlConn = new System.Data.SqlClient.SqlConnection(connectionString))
{
using (var sqlCmd = new System.Data.SqlClient.SqlCommand())
{
sqlConn.Open();
sqlCmd.Connection = sqlConn;
sqlCmd.CommandText = String.Format("CREATE SCHEMA [{0}]", schema);
sqlCmd.ExecuteNonQuery();
sqlCmd.CommandText = String.Format("SELECT '{0}' AS [Value] INTO [{1}].[ConnectionString]", connectionString, schema);
sqlCmd.ExecuteNonQuery();
}
}
//Step 3: Initialise SignalR
GlobalHost.DependencyResolver.UseSqlServer(connectionString);
app.MapSignalR(); //This is meant to trigger lots of logging.
//Step 4: Confirm we've successfully passed SignalR start-up
trace.TraceInformation("Finished starting SignalR");任何帮助都会很好。干杯。
发布于 2015-07-18 12:05:50
问题不是服务器端的SignalR,而是客户端JavaScript的启动例程在连接到SignalR集线器之前中止。
在建立第一个连接之前,SignalR似乎不会开始日志记录。
由于某些原因(尚未确定),SignalR启动例程正在开发环境中完成,并在生产前代码中中止。一个可能的原因是使用压缩JavaScript时启动事件的顺序不同。
https://stackoverflow.com/questions/31488731
复制相似问题