2017-08-06 3 views
1

コンソールアプリケーションやバックグラウンドサービスでSignalRセルフホストを設定するためのチュートリアルがたくさんあります。どのようにC#Winformsの自己ホストSignalRハブ?

https://docs.microsoft.com/en-us/aspnet/signalr/overview/deployment/tutorial-signalr-self-host

私はwinformsからそれを行う方法を考え出すのに苦労していますか?

 string url = @"http://127.0.0.1:8585/"; 

     using (WebApp.Start<Startup>(url)) 
     { 
      Console.WriteLine(string.Format("Server running at {0}", url)); 
      Console.ReadLine(); 
     } 

は私がする必要があるかもしれません知っている:そこここに同様の質問

how to setup a C# winforms application to host SignalR Hubs?

があるが、それらはコンソールアプリで答えている...ので、ここでは、コンソールで動作するコードです別のスレッドを開始しますが、どのようにサーバーを稼働させ続けるのでしょうか?私は同じものを使って試してみました。

+1

私はコンソールアプリケーションのコードもWPFでもうまくいくと思います。試しましたか?何かエラーがありますか? – Nisarg

+0

私はそれをonloadして初期化しましたが、サーバーが始まり、終了します。URLは機能しません。 – inN0Cent

+1

@ inN0Cent、「サーバーの開始と終了」について: 'using'ブロックはインスタンス作成時に' Dispose'メソッドが実行されることを意味します'WebApp.Start (url)'ステートメントによって。コンソールアプリケーションの 'using'ブロックは、ユーザがenter(' Console.ReadLine(); ')を押すまで終了しません。 wpfで 'using'ブロックが遅れずに終了します。 'WebApp.Start (url);'を試してください(app.exitのように適切なときに停止してください) – ASh

答えて

1

usingブロックは、WebApp.Start<Startup>(url)ステートメントによって作成されたインスタンスでDisposeメソッドが実行されることを意味します。

コンソールアプリケーションusingユーザーがEnterを押すまでブロックが完了しません(Console.ReadLine();)。

in wpf usingブロックは遅延なしで終了します。 WebApp.Start<Startup>(url);を試してください(そして、アプリケーション終了のような適切なときに停止してください)

関連する問題