SignalR トラブルシューティング (SignalR 1.x)SignalR Troubleshooting (SignalR 1.x)

提供者: Patrick Fletcherby Patrick Fletcher

Warning

このドキュメントは SignalR の最新バージョンはありません。This documentation isn't for the latest version of SignalR. 見てASP.NET Core SignalRします。Take a look at ASP.NET Core SignalR.

このドキュメントでは、SignalR を使って一般的な問題のトラブルシューティングについて説明します。This document describes common troubleshooting issues with SignalR.

このドキュメントには、次のセクションが含まれています。This document contains the following sections.

サイレント モードでが失敗したクライアントとサーバー間のメソッドの呼び出しCalling methods between the client and server silently fails

このセクションでは、意味のあるエラー メッセージを表示せずに失敗するには、クライアントとサーバー間のメソッド呼び出しの考えられる原因について説明します。This section describes possible causes for a method call between client and server to fail without a meaningful error message. SignalR アプリケーションで、サーバーに関する情報がない。 クライアントを実装する方法サーバーは、クライアント メソッドを呼び出しとメソッドの名前とパラメーターのデータがクライアントに送信される、メソッドが実行されるは、サーバーが指定した形式である場合にのみ。In a SignalR application, the server has no information about the methods that the client implements; when the server invokes a client method, the method name and parameter data are sent to the client, and the method is executed only if it exists in the format that the server specified. 一致するメソッドが検出されないクライアントでは、何も起こりません、サーバー上のエラー メッセージが発生しなかった場合は。If no matching method is found on the client, nothing happens, and no error message is raised on the server.

クライアント メソッドが呼び出されない作業をさらに調査するには、どのような呼び出しを表示するハブの start メソッドは、サーバーから送信される呼び出しの前にログ記録にできます。To further investigate client methods not getting called, you can turn on logging before the calling the start method on the hub to see what calls are coming from the server. JavaScript アプリケーションでのログ記録を有効にするのを参照してください。クライアント側のログ記録 (JavaScript クライアントのバージョン) を有効にする方法します。To enable logging in a JavaScript application, see How to enable client-side logging (JavaScript client version). .NET クライアント アプリケーションでのログ記録を有効にするのを参照してください。クライアント側のログ記録 (.NET クライアントのバージョン) を有効にする方法します。To enable logging in a .NET client application, see How to enable client-side logging (.NET Client version).

スペルの正しくないメソッド、不適切なメソッドのシグネチャ、または不適切なハブの名前Misspelled method, incorrect method signature, or incorrect hub name

名前または呼び出されたメソッドのシグネチャが一致しない場合、クライアント上の適切なメソッド、呼び出しは失敗します。If the name or signature of a called method does not exactly match an appropriate method on the client, the call will fail. メソッド名がサーバーによって呼び出されますが、クライアント上のメソッドの名前と一致することを確認します。Verify that the method name called by the server matches the name of the method on the client. また、SignalR は camel 形式のメソッドを使用するハブ プロキシを作成します。 JavaScript では、そのため、メソッドと呼ばれますSendMessageサーバーでが呼び出されますsendMessageクライアント プロキシで。Also, SignalR creates the hub proxy using camel-cased methods, as is appropriate in JavaScript, so a method called SendMessage on the server would be called sendMessage in the client proxy. 使用する場合、HubNameサーバー側コードで属性を使用する名前が、クライアントで、ハブの作成に使用する名前と一致していることを確認します。If you use the HubName attribute in your server-side code, verify that the name used matches the name used to create the hub on the client. 使用しない場合、HubName属性、JavaScript クライアント内でハブの名前が ChatHub ではなく chatHub など、キャメル形式で表記であることを確認します。If you do not use the HubName attribute, verify that the name of the hub in a JavaScript client is camel-cased, such as chatHub instead of ChatHub.

クライアント上のメソッド名が重複していますDuplicate method name on client

大文字小文字によってのみとは異なるクライアントで重複するメソッドがないことを確認します。Verify that you do not have a duplicate method on the client that differs only by case. 場合は、クライアント アプリケーションがある呼び出されるメソッドsendMessage、いないというメソッドもを確認してSendMessageもします。If your client application has a method called sendMessage, verify that there isn't also a method called SendMessage as well.

クライアントで不足している JSON のパーサーMissing JSON parser on the client

SignalR では、JSON パーサーは、サーバーとクライアント間の呼び出しをシリアル化するために必要です。SignalR requires a JSON parser to be present to serialize calls between the server and the client. クライアントが (Internet Explorer 7 の場合) などの組み込み JSON パーサーを持っていない場合は、アプリケーションのいずれかに含める必要があります。If your client doesn't have a built-in JSON parser (such as Internet Explorer 7), you'll need to include one in your application. JSON パーサーをダウンロードするここします。You can download the JSON parser here.

ハブおよび PersistentConnection 構文を混在させるMixing Hub and PersistentConnection syntax

SignalR では、2 つの間の通信モデルを使用します。ハブおよび PersistentConnections します。SignalR uses two communication models: Hubs and PersistentConnections. これらの 2 つの通信モデルを呼び出すための構文は、クライアント コードで異なります。The syntax for calling these two communication models is different in the client code. サーバー コードにハブを追加した場合は、すべてのクライアント コードは適切なハブの構文を使用することを確認します。If you have added a hub in your server code, verify that all of your client code uses the proper hub syntax.

JavaScript クライアント内で、PersistentConnection を作成する JavaScript クライアント コードJavaScript client code that creates a PersistentConnection in a JavaScript client

var myConnection = $.connection('/echo');

Javascript クライアント内でハブ プロキシを作成する JavaScript クライアント コードJavaScript client code that creates a Hub Proxy in a Javascript client

var myHub = $.connection.MyHub;

C# サーバー コードを PersistentConnection にルートをマップします。C# server code that maps a route to a PersistentConnection

RouteTable.Routes.MapConnection<MyConnection>("my", "/echo");

C#複数のアプリケーションがある場合、ハブ、または複数のハブ ルートをマップするサーバー コードC# server code that maps a route to a Hub, or to multiple hubs if you have multiple applications

RouteTable.Routes.MapHubs();

サブスクリプションを追加する前に開始した接続Connection started before subscriptions are added

プロキシ サーバーから呼び出すことができるメソッドが追加される前に、ハブの接続が開始されると、メッセージが受信されません。If the Hub's connection is started before methods that can be called from the server are added to the proxy, messages will not be received. 次の JavaScript コードは、ハブを正しく開始できません。The following JavaScript code will not start the hub properly:

ハブのメッセージを受信することはできません。 JavaScript クライアント コードが正しくないです。Incorrect JavaScript client code that will not allow Hubs messages to be received

var chat = $.connection.chatHub;
$.connection.hub.start().done(function () {
    chat.client.broadcastMessage = function (name, message) {...};
});

代わりに、開始を呼び出す前に、メソッドのサブスクリプションを追加します。Instead, add the method subscriptions before calling Start:

ハブに誤ってサブスクリプションを追加する JavaScript クライアント コードJavaScript client code that correctly adds subscriptions to a hub

var chat = $.connection.chatHub;
chat.client.broadcastMessage = function (name, message) {...};
    $.connection.hub.start().done(function () {
        ...
    });

ハブ プロキシのメソッド名がありません。Missing method name on the hub proxy

サーバーで定義されたメソッドがクライアントで購読していることを確認します。Verify that the method defined on the server is subscribed to on the client. 場合でも、サーバーは、メソッドを定義、クライアント プロキシにも追加する必要があります。Even though the server defines the method, it must still be added to the client proxy. メソッドは、次の方法でクライアント プロキシに追加できます (注、メソッドに追加される、clientハブのハブではなく直接のメンバー)。Methods can be added to the client proxy in the following ways (Note that the method is added to the client member of the hub, not the hub directly):

ハブ プロキシのメソッドを追加する JavaScript クライアント コードJavaScript client code that adds methods to a hub proxy

// Method added to proxy in JavaScript:
myHubProxy.server.method1 = function (param1, param2) {...};
//Multiple methods added to proxy in JavaScript using jQuery:
$.extend(myHubProxy.server, {
    method1: function (param1, param2) {...},
    method2: function (param3, param4) {...}
});

ハブまたはハブ メソッドをパブリックとして宣言されていませんHub or hub methods not declared as Public

クライアントに表示される、ハブの実装とメソッドとして宣言する必要がありますpublicします。To be visible on the client, the hub implementation and methods must be declared as public.

別のアプリケーションからハブへのアクセスAccessing hub from a different application

SignalR ハブは、SignalR クライアントを実装するアプリケーションからのみアクセスできます。SignalR Hubs can only be accessed through applications that implement SignalR clients. SignalR ことはできません (SOAP サービスまたは WCF web サービスです。) などの他の通信ライブラリとの相互運用します。ターゲット プラットフォームの使用可能な SignalR クライアントがない場合、サーバーのエンドポイントに直接アクセスすることはできません。SignalR cannot interoperate with other communication libraries (like SOAP or WCF web services.) If there is no SignalR client available for your target platform, you cannot access the server's endpoint directly.

手動でデータをシリアル化Manually serializing data

SignalR は自動的に JSON シリアル化に使用、メソッド パラメーターであるのなら自分自身でするのに必要ありません。SignalR will automatically use JSON to serialize your method parameters- there's no need to do it yourself.

リモートのハブ メソッドをクライアント OnDisconnected 関数では実行されません。Remote Hub method not executed on client in OnDisconnected function

この動作は意図されたものです。This behavior is by design. ときにOnDisconnectedが呼び出されると、ハブが既に入力、Disconnectedによりさらにハブ メソッドを呼び出せる状態。When OnDisconnected is called, the hub has already entered the Disconnected state, which does not allow further hub methods to be called.

OnDisconnected イベント内のコードを正しく実行 c# サーバー コードC# server code that correctly executes code in the OnDisconnected event

public class MyHub : Hub
{
    public override Task OnDisconnected()
    {
        // Do what you want here
        return base.OnDisconnected();
    }
}

接続の上限に達しましたConnection limit reached

Windows 7 などのクライアント オペレーティング システムでの完全版の IIS を使用する場合は、10 接続制限が適用されます。When using the full version of IIS on a client operating system like Windows 7, a 10-connection limit is imposed. クライアント OS を使用して、IIS Express 代わりに使用してこの制限を回避します。When using a client OS, use IIS Express instead to avoid this limit.

ドメイン間の接続が正しく設定されていませんCross-domain connection not set up properly

ドメイン間の接続の場合 (対象の SignalR URL が、ホスティング ページと同じドメインに接続) が正しくセットアップされていない、エラーが発生せず、接続が失敗します。If a cross-domain connection (a connection for which the SignalR URL is not in the same domain as the hosting page) is not set up correctly, the connection may fail without an error message. ドメイン間の通信を有効にする方法については、次を参照してください。ドメイン間の接続を確立する方法します。For information on how to enable cross-domain communication, see How to establish a cross-domain connection.

.NET クライアントで機能しない NTLM (Active Directory) を使用して接続Connection using NTLM (Active Directory) not working in .NET client

ドメインのセキュリティを使用する .NET クライアント アプリケーション内の接続が失敗する場合は、接続が正しく構成されていません。A connection in a .NET client application that uses Domain security may fail if the connection is not configured properly. SignalR を使用して、ドメイン環境で、次のように、必要な接続プロパティを設定します。To use SignalR in a domain environment, set the requisite connection property as follows:

接続の資格情報を実装する c# クライアント コードC# client code that implements connection credentials

connection.Credentials = CredentialCache.DefaultCredentials;

その他の接続の問題Other connection issues

このセクションでは、原因と解決策の特定の現象または接続中に発生するエラー メッセージについて説明します。This section describes the causes and solutions for specific symptoms or error messages that occur during a connection.

「スタートにはデータを送信する前に呼び出す必要があります」エラー"Start must be called before data can be sent" error

このエラーは、接続を開始する前に、コードが SignalR オブジェクトを参照している場合によく見られます。This error is commonly seen if code references SignalR objects before the connection is started. ハンドラーなどのワイヤアップがメソッドの呼び出し、サーバーで定義されている必要があります追加されること、接続が完了した後。The wireup for handlers and the like that will call methods defined on the server must be added after the connection completes. なおへの呼び出しStartは前に、呼び出しを実行することが後のコードが完了するために非同期でします。Note that the call to Start is asynchronous, so code after the call may be executed before it completes. 接続が完全に開始した後、ハンドラーを追加する最善の方法は、start メソッドにパラメーターとして渡されるコールバック関数には。The best way to add handlers after a connection starts completely is to put them into a callback function that is passed as a parameter to the start method:

正しく SignalR オブジェクトを参照するイベント ハンドラーを追加する JavaScript クライアント コードJavaScript client code that correctly adds event handlers that reference SignalR objects

$.connection.hub.start().done(function () {
    // Wire up Send button to call NewContosoChatMessage on the server.
    $('#newContosoChatMessage').click(function () {
        contosoChatHubProxy.server.newContosoChatMessage(
            $('#displayname').val(), $('#message').val());
            $('#message').val('').focus();
    });

このエラーは、SignalR オブジェクトはまだ参照されているときに、接続が停止した場合にも表示されます。This error will also be seen if a connection stops while SignalR objects are still being referenced.

「301 は完全に移動されました」または「302 が一時的に移動されました」エラー"301 Moved Permanently" or "302 Moved Temporarily" error

このエラーは、プロジェクトには、SignalR で、自動的に作成されたプロキシが干渉をという名前のフォルダーが含まれている場合に発生する可能性があります。This error may be seen if the project contains a folder called SignalR, which will interfere with the automatically-created proxy. このエラーを回避するために使用しないでくださいという名前のフォルダーSignalRアプリケーション、または有効にする自動プロキシの生成をオフにします。To avoid this error, do not use a folder called SignalR in your application, or turn automatic proxy generation off. 参照してください、生成されたプロキシとは何をの詳細。See The Generated Proxy and what it does for you for more details.

.NET または Silverlight クライアントに「403 アクセス不可」エラー"403 Forbidden" error in .NET or Silverlight client

このエラーは、ドメイン間の通信が正しく有効化しないクロス ドメイン環境で発生する可能性があります。This error may occur in cross-domain environments where cross-domain communication is not properly enabled. ドメイン間の通信を有効にする方法については、次を参照してください。ドメイン間の接続を確立する方法します。For information on how to enable cross-domain communication, see How to establish a cross-domain connection. Silverlight クライアントでのドメイン間の接続を確立するを参照してください。 Silverlight クライアントからのドメインを越えた接続します。To establish a cross-domain connection in a Silverlight client, see Cross-domain connections from Silverlight clients.

「404 見つかりません」エラー"404 Not Found" error

この問題のいくつかの原因があります。There are several causes for this issue. 次のすべてを確認します。Verify all of the following:

  • ハブ プロキシのアドレス リファレンス形式が正しくありません。 このエラーは生成されたハブ プロキシのアドレスへの参照が正しくフォーマットされていない場合によく見られます。Hub proxy address reference not formatted correctly: This error is commonly seen if the reference to the generated hub proxy address is not formatted correctly. ハブ アドレスへの参照が正しく行われたことを確認します。Verify that the reference to the hub address is made properly. 参照してください動的に生成されたプロキシを参照する方法詳細についてはします。See How to reference the dynamically generated proxy for details.
  • ハブ ルートを追加する前にアプリケーションへのルートの追加。 アプリケーションでは、他のルートを使用する場合、最初のルートが追加の呼び出しの確認MapHubsします。Adding routes to application before adding the hub route: If your application uses other routes, verify that the first route added is the call to MapHubs.

「500 内部サーバー エラー」"500 Internal Server Error"

これは、さまざまな原因の可能性がある非常に一般的なエラーです。This is a very generic error that could have a wide variety of causes. エラーの詳細については、サーバーのイベント ログに記録する必要があります。 またはサーバーのデバッグを確認できます。The details of the error should appear in the server's event log, or can be found through debugging the server. サーバーの詳細なエラーを有効にして、詳細なエラー情報を取得できます。More detailed error information may be obtained by turning on detailed errors on the server. 詳細については、次を参照してください。ハブ クラス内のエラーの処理方法します。For more information, see How to handle errors in the Hub class.

"TypeError: <hubType>が定義されていません"エラー"TypeError: <hubType> is undefined" error

このエラーが発生する呼び出しMapHubsが正しく行われていません。This error will result if the call to MapHubs is not made properly. 参照してくださいSignalR のルートを登録し、SignalR のオプションを構成する方法詳細についてはします。See How to register the SignalR route and configure SignalR options for more information.

JsonSerializationException がユーザー コードでハンドルされませんでした。JsonSerializationException was unhandled by user code

パラメーター、メソッドに送信するには、シリアル化できない型 (ファイル ハンドル、データベース接続など) が含まれていないことを確認します。Verify that the parameters you send to your methods do not include non-serializable types (like file handles or database connections). 使用 (またはセキュリティのためのシリアル化の理由から)、クライアントに送信したくないのサーバー側オブジェクトにメンバーを使用する必要がある場合、JSONIgnore属性。If you need to use members on a server-side object that you don't want to be sent to the client (either for security or for reasons of serialization), use the JSONIgnore attribute.

"プロトコル エラー。不明なトランスポートは"エラー"Protocol error: Unknown transport" error

このエラーは、クライアントは SignalR を使用するトランスポートをサポートしていない場合に発生する可能性があります。This error may occur if the client does not support the transports that SignalR uses. 参照してくださいトランスポートとフォールバックについてを SignalR でブラウザーを使用できます。See Transports and Fallbacks for information on which browsers can be used with SignalR.

「JavaScript ハブ プロキシの生成が無効になっています。」"JavaScript Hub proxy generation has been disabled."

このエラーが発生DisableJavaScriptProxiesで動的に生成されたプロキシへの参照を含むも中に設定されているsignalr/hubsします。This error will occur if DisableJavaScriptProxies is set while also including a reference to the dynamically generated proxy at signalr/hubs. プロキシを手動で作成する方法の詳細については、次を参照してください。 、生成されたプロキシとは何がします。For more information on creating the proxy manually, see The generated proxy and what it does for you.

「接続 ID は形式が正しくありません」または「ユーザー id は、SignalR のアクティブな接続中に変更できません」エラー"The connection ID is in the incorrect format" or "The user identity cannot change during an active SignalR connection" error

このエラーは、認証を使用して、接続が停止する前に、クライアントがログアウトした場合に発生する可能性があります。This error may be seen if authentication is being used, and the client is logged out before the connection is stopped. ソリューションでは、クライアントをログアウトする前に SignalR 接続を停止します。The solution is to stop the SignalR connection before logging the client out.

"エラーをキャッチできません。SignalR: jQuery not found."Uncaught Error: SignalR: jQuery not found. SignalR.js ファイルの前に jQuery が参照されていることを確認してください"のエラーPlease ensure jQuery is referenced before the SignalR.js file" error

SignalR JavaScript クライアントでは、jQuery を実行する必要があります。The SignalR JavaScript client requires jQuery to run. JQuery への参照が使用されるパスが有効であるおよび SignalR への参照を前に jQuery への参照が正しいことを確認します。Verify that your reference to jQuery is correct, that the path used is valid, and that the reference to jQuery is before the reference to SignalR.

"TypeError をキャッチできません。プロパティを読み取ることができません '<プロパティ>' 未定義の"エラー"Uncaught TypeError: Cannot read property '<property>' of undefined" error

このエラーは、jQuery またはハブ プロキシを適切に参照されていないことから発生します。This error results from not having jQuery or the hubs proxy referenced properly. JQuery、およびハブ プロキシへの参照が使用されるパスが有効であると、ハブ プロキシへの参照を前に jQuery への参照が正しいことを確認します。Verify that your reference to jQuery and the hubs proxy is correct, that the path used is valid, and that the reference to jQuery is before the reference to the hubs proxy. ハブ プロキシを既定の参照は、次のようになります。The default reference to the hubs proxy should look like the following:

ハブ プロキシを正しく参照する HTML クライアント側のコードHTML client-side code that correctly references the Hubs proxy

<script src="/signalr/hubs"></script>

「RuntimeBinderException はユーザー コードで未処理でした」エラー"RuntimeBinderException was unhandled by user code" error

このエラーが発生する場合の正しくないオーバー ロードHub.On使用されます。This error may occur when the incorrect overload of Hub.On is used. メソッドの戻り値の場合、戻り値の型がジェネリック型パラメーターとして指定する必要があります。If the method has a return value, the return type must be specified as a generic type parameter:

(生成されたプロキシは) を使用せず、クライアントで定義されたメソッドMethod defined on the client (without generated proxy)

MyHub.On<ReturnType>("MethodName", LocalMethod);

接続 ID が一貫性のあるか、ページ読み込みの間で接続が切断Connection ID is inconsistent or connection breaks between page loads

この動作は意図されたものです。This behavior is by design. ハブ オブジェクトは、page オブジェクトでホストされている、ため、ハブは、ページが更新されると破棄されます。Since the hub object is hosted in the page object, the hub is destroyed when the page refreshes. 複数ページのアプリケーションは、ページ読み込みの間の一貫性になるように、ユーザーと接続 Id 間の関連付けを維持する必要があります。A multi-page application needs to maintain the association between users and connection IDs so that they will be consistent between page loads. 接続 Id は、いずれかで、サーバーに格納できる、ConcurrentDictionaryオブジェクトまたはデータベース。The connection IDs can be stored on the server in either a ConcurrentDictionary object or a database.

「値を null にすることはできません」エラー"Value cannot be null" error

省略可能なパラメーターを持つサーバー側のメソッドは現在サポートされていません。省略可能なパラメーターを省略した場合、メソッドは失敗します。Server-side methods with optional parameters are not currently supported; if the optional parameter is omitted, the method will fail. 詳細については、次を参照してください。省略可能なパラメーターします。For more information, see Optional Parameters.

"Firefox でサーバーへの接続を確立できません<アドレス>"Firebug でのエラー"Firefox can't establish a connection to the server at <address>" error in Firebug

このエラー メッセージは、WebSocket トランスポートのネゴシエーションは失敗し、他のトランスポートが代わりに使用される場合、Firebug で確認できます。This error message can be seen in Firebug if negotiation of the WebSocket transport fails and another transport is used instead. この動作は意図されたものです。This behavior is by design.

.NET クライアント アプリケーションで「リモート証明書が検証の手順に従って無効です」エラー"The remote certificate is invalid according to the validation procedure" error in .NET client application

場合は、サーバーでは、要求が行われる前に、接続に x509certificate を追加することができますし、カスタムのクライアント証明書が必要です。If your server requires custom client certificates, then you can add an x509certificate to the connection before the request is made. 接続を使用して、証明書を追加Connection.AddClientCertificateします。Add the certificate to the connection using Connection.AddClientCertificate.

認証のタイムアウト後の接続を削除しますConnection drops after authentication times out

この動作は意図されたものです。This behavior is by design. 接続がアクティブになったときに、認証資格情報を変更することはできません。資格情報を更新するには、接続を停止および再起動してする必要があります。Authentication credentials cannot be modified while a connection is active; to refresh credentials, the connection must be stopped and restarted.

OnConnected が jQuery Mobile を使用する場合に 2 回呼び出されますOnConnected gets called twice when using jQuery Mobile

Mobile を jQueryinitializePage関数は、再実行するには、各ページのスクリプトは、2 番目の接続を作成します。jQuery Mobile's initializePage function forces the scripts in each page to be re-executed, thus creating a second connection. この問題のソリューションは次のとおりです。Solutions for this issue include:

  • JQuery Mobile、JavaScript ファイルへの参照が含まれます。Include the reference to jQuery Mobile before your JavaScript file.
  • 無効にする、initializePage関数を設定して$.mobile.autoInitializePage = falseします。Disable the initializePage function by setting $.mobile.autoInitializePage = false.
  • 接続を開始する前に初期化を完了してページを待機します。Wait for the page to finish initializing before starting the connection.

サーバー送信イベントを使用して Silverlight アプリケーションでメッセージが遅延します。Messages are delayed in Silverlight applications using Server Sent Events

Silverlight でイベントを送信するサーバーを使用する場合、メッセージが遅延します。Messages are delayed when using server sent events on Silverlight. 長い代わりに使用するポーリングを強制するには、接続を開始するときに、次を使用します。To force long polling to be used instead, use the following when starting the connection:

connection.Start(new LongPollingTransport());

プロトコルのフレーム「アクセス許可が拒否されました」を使用して永久に"Permission Denied" using Forever Frame protocol

これは既知の問題で説明されているここします。This is a known issue, described here. この現象は、最新 JQuery ライブラリを使用して表示する可能性があります。回避策では、JQuery 1.8.2 にアプリケーションをダウン グレードします。This symptom may be seen using the latest JQuery library; the workaround is to downgrade your application to JQuery 1.8.2.

コンパイルとサーバー側のエラーCompilation and server-side errors

次のセクションには、コンパイラとサーバー側のランタイム エラーの考えられる解決策が含まれています。The following section contains possible solutions to compiler and server-side runtime errors.

ハブ インスタンスへの参照が nullReference to Hub instance is null

接続ごとにハブ インスタンスが作成された後できませんインスタンスを作成するハブのコードで自分でします。Since a hub instance is created for each connection, you can't create an instance of a hub in your code yourself. ハブ自体では、外部からハブのメソッドを呼び出すを参照してください。クライアント メソッドを呼び出すと、ハブ クラスの外部からグループを管理する方法のハブ コンテキストへの参照を取得する方法。To call methods on a hub from outside the hub itself, see How to call client methods and manage groups from outside the Hub class for how to obtain a reference to the hub context.

HTTPContext.Current.Session が nullHTTPContext.Current.Session is null

この動作は意図されたものです。This behavior is by design. 双方向メッセージング中断は、セッション状態を有効にするため、SignalR は ASP.NET セッション状態をサポートしません。SignalR does not support the ASP.NET session state, since enabling the session state would break duplex messaging.

オーバーライドする適切なメソッドはありません。No suitable method to override

以前のドキュメントまたはブログからのコードを使用している場合は、このエラーを参照してください可能性があります。You may see this error if you are using code from older documentation or blogs. 変更または非推奨とされているメソッドの名前を参照していないことを確認します (などOnConnectedAsync)。Verify that you are not referencing names of methods that have been changed or deprecated (like OnConnectedAsync).

HostContextExtensions.WebSocketServerUrl が nullHostContextExtensions.WebSocketServerUrl is null

この動作は意図されたものです。This behavior is by design. このメンバーは非推奨とされますは使用できません。This member is deprecated and should not be used.

「'Signalr.hubs' という名前のルートは既にルート コレクションがいます」エラー"A route named 'signalr.hubs' is already in the route collection" error

場合、このエラーが発生するMapHubsは、アプリケーションによって 2 回呼び出されます。This error will be seen if MapHubs is called twice by your application. いくつかの例のアプリケーション呼び出しMapHubsラッパー クラスでの呼び出しを行う他のユーザーは、グローバル アプリケーション ファイルで直接します。Some example applications call MapHubs directly in the global application file; others make the call in a wrapper class. アプリケーションはないこと両方を確認します。Ensure that your application does not do both.

Visual Studio の問題Visual Studio issues

このセクションでは、Visual Studio で発生する問題について説明します。This section describes issues encountered in Visual Studio.

ソリューション エクスプ ローラーでスクリプト ドキュメントのノードが表示されません。Script Documents node does not appear in Solution Explorer

チュートリアルの一部を実行するデバッグ中にソリューション エクスプ ローラーで [スクリプト ドキュメント] ノードに送る。Some of our tutorials direct you to the "Script Documents" node in Solution Explorer while debugging. このノードは、JavaScript デバッガーによって生成され、Internet explorer のブラウザー クライアントのデバッグ中にのみ表示されます。Chrome または Firefox を使用する場合は、ノードは表示されません。This node is produced by the JavaScript debugger, and will only appear while debugging browser clients in Internet Explorer; the node will not appear if Chrome or Firefox are used. JavaScript デバッガーも実行されません、Silverlight デバッガーなど、別のクライアントのデバッガーが実行されている場合。The JavaScript debugger will also not run if another client debugger is running, such as the Silverlight debugger.

SignalR では、Visual Studio 2008 またはそれ以前は機能しませんSignalR does not work on Visual Studio 2008 or earlier

この動作は意図されたものです。This behavior is by design. SignalR には、.NET Framework 4 以降が必要です。これは、Visual Studio 2010 以降に SignalR アプリケーションを開発することが必要です。SignalR requires .NET Framework 4 or later; this requires that SignalR applications be developed in Visual Studio 2010 or later.

IIS の問題IIS issues

このセクションには、インターネット インフォメーション サービスの問題が含まれています。This section contains issues with Internet Information Services.

MapHubs 呼び出し後、web サイトがクラッシュします。Web site crashes after MapHubs call

この問題は SignalR の最新バージョンで修正されました。This issue has been fixed in the latest version of SignalR. NuGet を使用して、インストールを更新して最新のリリース バージョンの SignalR を使用していることを確認します。Verify that you are using the latest released version of SignalR by updating your installation using NuGet.

Azure の問題Azure issues

このセクションには、Microsoft Azure での問題が含まれています。This section contains issues with Microsoft Azure.

メッセージがトピック名を変更した後は Azure のバック プレーンを介して受信されていません。Messages are not received through the Azure backplane after altering topic names

Azure のバック プレーンで使用されるトピックは、ユーザー構成可能にするものではありません。The topics used by the Azure backplane are not intended to be user-configurable.