2017-11-30 8 views
0

私は、チャット機能を処理するためにSignalRを使用してASP .NET Web APIを構築しました。問題は、クライアントがSignalR接続を開始したときに、アプリケーションがコンパイル(csc.exeまたはVBCSCompiler.exe)を開始し、100%CPU使用率をとり、他の要求をブロックすることです。さらに、問題は自分以外のすべての環境に存在し、すべてのページリフレッシュでは発生しません。コンパイルせずに接続することもあります。ASP .NET Web API SignalR - 接続時に何かをコンパイルし、高いCPU使用率を実現

CPU usage

これまでのところ、私が試してみました:

  • は、接続を処理する私のコード(OnConnected、OnDisconnected、OnReconnected)環境
  • ブロック間のWeb.configファイルで
  • チェックの違いを削除しますcsc.exeまたはVBCSCompiler.exeにアクセス許可を設定します。
  • 異なるSignalRトランスポート方法を試してください。
  • SignalR client log
  • プロファイラでそんなに時間がかかるどのようなプロセスチェック - LongPollingは(17Sをここであなたはそれを交渉するのにかかる時間の長さを表示することができます)は、クライアントとサーバー側の
  • チェックSignalRの接続ログと同じように動作します。ここでは、いくつかのコンパイルメソッドを実行するStartApplicationメソッドを見ることができます。 Profiler

このケースで何を確認する必要がありますか?

+0

このリリースはありますか、またはコードをデバッグしていますか? –

+0

これはリリースです。 – qba8

答えて

0

私は解決策を見つけました。 ログはbinフォルダに保存されていたという問題がありました。そのため、ログファイルのすべてのエントリが原因でアプリケーションプールがリサイクルされました。 ログを保存することはできませんbinフォルダー! 私の場合、接続中にいくつかの情報入力がありました。そのため、私のアプリケーションはほとんどすべての要求に対して何かをコンパイルしていました。