AS.NET SignalR Troubeshoting

1914 ワード

method could not be resoved
シーン:Javascriptクライアントはプロキシを生成しないで、サービスエンドの方法を呼び出します.公式文書の使い方によると、
contosoChatHubProxy.invoke('newContosoChatMessage', { UserName: userName, Message: message}).done(function () {
    console.log ('Invocation of NewContosoChatMessage succeeded');
}).fail(function (error) {
    console.log('Invocation of NewContosoChatMessage failed. Error: ' + error);
});
しかし、実際に呼び出した場合は、以下の異常を投げます.
'SendMessage' method could not be resolved.
Potential candidates are: SendMessage(toFinanceId:String, toCustomerName:String, message:String):Task
理由:サービスエンドメソッドを呼び出すと、伝達パラメータのタイプが違っています.ここではサービスエンド法で定義されているのは3つのパラメータですが、私が伝達するのはこの3つのパラメータを含むオブジェクトですので、一致しません.
参考:NET Client unable to call hu methods with array parameters
SignalR接続が2つを超えるとき、ウェブサイトの要求は全部ブロックされます.
前の時間はウェブサイトの中でSignalRを利用してリアルタイムチャット機能を増加しました.最初の開発過程は正常でしたが、新しいパソコンを交換してから、一つの現象が現れました.ウェブサイトを開けて、最初の要求は全部終わった後、その後のすべての要求はpending状態になりました.IIS作業プロセスの現在の要求を見ると、SignalRの接続が3つあり、他の処理中の要求はありません.
コードの中でSignalRの部分を注釈してみました.その後、ブロックされたすべての要求が突然生きてきました.
SignalRを使っていないと推測されていますが、同じコードは前のコンピュータでは問題ありません.
この2台のパソコンの違いは、古いパソコンのOSはWindows 10 Professionalで、新しいパソコンのOSはWindows 10 Homeです.
そこでキーワードにキーワードを追加しました.Windows 10 Home、またGoogleは、すぐに答えを見つけました.別のWindowsバージョンでは、IISの連結数が制限されています.
Windows 10 Home : 3
Windows 10 Professional : 10
なお、この制限はIISバージョンではなくWindowsバージョンに依存する.
WindowsバージョンはCientバージョンとServerバージョンに分けられます.CientバージョンはWindows 7、Windows 8、Windows Vistaなどの制限があります.しかし、Serverバージョンには制限がありません.例えば、Server 2003、Server 2008、Server 2012.
検証したところ、Windows 10のProfessionalコンピュータが搭載されているIISの同時要求数は9つを超えてはいけません.
排除過程を総括する:
  • チェックコード.
  • 台のコンピュータのOSの違い.
  • 参考:Windows 8/IIS 8 Concerent Requests Limit
    転載先:https://www.cnblogs.com/songxingzheng/p/ASP-NET-SignalR-Troubeshooting.html