[英]Deploying signalR with ARR in IIS (Application Request Routing )
我們在應用程序中使用SignalR。 異常類型為:
集線器服務器無法啟動。 消息:發生一個或多個錯誤。 堆棧跟蹤:位於System.Threading.Tasks.Task.Wait處的System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)(位於ProjectName.TryStartHub處的System.Threading.Tasks.Task.Wait()處的Int32 millisecondsTimeout,CancellationToken cancellingToken) (對象來源,ElapsedEventArgs e)
當我們在系統中本地測試時沒有錯誤。 當我們使用ARR部署它時。 那么就有一個例外是僅僅因為ARR。 同時我們也刪除了ARR,然后嘗試了它。 但是它不適用於ARR。
代碼正確,但是SignalR和ARR存在配置問題。
public void InitializeHub()
{
appLog.Write("Initializing Hub Server");
IHubProxy _hub;
var querystringData = new Dictionary<string, string>();
querystringData.Add("Key", "key1");
hypervisorConnection = new HubConnection("url", querystringData);
_hub = hConnection.CreateHubProxy("Hub");
_hub.On<HypervisorCommand>("ExecuteHypervisorCommand", x => ExecuteHypervisorCommand(x));
#region Initialize Hub Timer
hHubTimer = new System.Timers.Timer();
hHubTimer.Elapsed += new ElapsedEventHandler(TryStartHub);
hHubTimer.AutoReset = false;
hHubTimer.Interval = 1000;
hHubTimer.Enabled = true;
hHubTimer.Start();
#endregion
}
private void TryStartHub(object source, ElapsedEventArgs e)
{
try
{
if (hConnection.State != ConnectionState.Connected)
{
hConnection.Start().Wait();
appLog.Write("Hypervisor Hub server started.");
}
}
catch (Exception ex)
{
appLog.Write("Hub Server was unable to start. Message:" + ex.Message + "\n Stack trace:" + ex.StackTrace);
}
hHubTimer.Interval = 30000;
hHubTimer.Start();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.