Service Bus メッセージングの例外Service Bus messaging exceptions

この記事では、.NET Framework API によって生成される .NET 例外を一覧表示します。This article lists the .NET exceptions generated by .NET Framework APIs.

例外のカテゴリException categories

メッセージング API で生成される例外をカテゴリ別に分類し、修復のために実行できる関連するアクションと共に以下に示します。The messaging APIs generate exceptions that can fall into the following categories, along with the associated action you can take to try to fix them. 例外の意味と原因は、メッセージング エンティティの種類によって異なる場合があります。The meaning and causes of an exception can vary depending on the type of messaging entity:

  1. ユーザー コードのエラー (System.ArgumentExceptionSystem.InvalidOperationExceptionSystem.OperationCanceledExceptionSystem.Runtime.Serialization.SerializationException)。User coding error (System.ArgumentException, System.InvalidOperationException, System.OperationCanceledException, System.Runtime.Serialization.SerializationException). 一般アクション: 処理を実行する前にコードの修正を試みます。General action: try to fix the code before proceeding.
  2. セットアップ/構成エラー (Microsoft.ServiceBus.Messaging.MessagingEntityNotFoundExceptionSystem.UnauthorizedAccessException)。Setup/configuration error (Microsoft.ServiceBus.Messaging.MessagingEntityNotFoundException, System.UnauthorizedAccessException. 一般アクション: 構成を確認し、必要に応じて変更します。General action: review your configuration and change if necessary.
  3. 一時的な例外 (Microsoft.ServiceBus.Messaging.MessagingExceptionMicrosoft.ServiceBus.Messaging.ServerBusyExceptionMicrosoft.ServiceBus.Messaging.MessagingCommunicationException)。Transient exceptions (Microsoft.ServiceBus.Messaging.MessagingException, Microsoft.ServiceBus.Messaging.ServerBusyException, Microsoft.ServiceBus.Messaging.MessagingCommunicationException). 一般アクション: 操作をやり直すか、ユーザーに通知します。General action: retry the operation or notify users. クライアント SDK の RetryPolicy クラスは、再試行を自動的に処理するように構成できます。The RetryPolicy class in the client SDK can be configured to handle retries automatically. 詳細については、再試行のガイダンスを参照してください。For more information, see Retry guidance.
  4. その他の例外 (System.Transactions.TransactionExceptionSystem.TimeoutExceptionMicrosoft.ServiceBus.Messaging.MessageLockLostExceptionMicrosoft.ServiceBus.Messaging.SessionLockLostException)。Other exceptions (System.Transactions.TransactionException, System.TimeoutException, Microsoft.ServiceBus.Messaging.MessageLockLostException, Microsoft.ServiceBus.Messaging.SessionLockLostException). 全般的なアクション: 例外の種類に固有。次のセクションの表を参照してください。General action: specific to the exception type; refer to the table in the following section:

例外の種類Exception types

次の表は、メッセージングの例外の種類および原因と実行できる推奨アクションを示したものです。The following table lists messaging exception types, and their causes, and notes suggested action you can take.

例外の種類Exception Type 説明/原因/例Description/Cause/Examples 推奨アクションSuggested Action 自動/即時再試行に関する注意Note on automatic/immediate retry
TimeoutExceptionTimeoutException サーバーは、OperationTimeout によって制御される指定された時間内に、要求された操作に対して応答しませんでした。The server didn't respond to the requested operation within the specified time, which is controlled by OperationTimeout. サーバーで、要求された操作が完了した可能性があります。The server may have completed the requested operation. これは、ネットワークや他のインフラストラクチャの遅延が原因で発生することがあります。It can happen because of network or other infrastructure delays. システム状態の整合性をチェックして、必要な場合は再試行してください。Check the system state for consistency and retry if necessary. TimeoutException」を参照してください。See Timeout exceptions. 再試行によって解決する場合があります。再試行ロジックをコードに追加してください。Retry might help in some cases; add retry logic to code.
InvalidOperationExceptionInvalidOperationException 要求されたユーザー操作は、サーバーまたはサービス内で許可されていません。The requested user operation isn't allowed within the server or service. 詳細については、例外メッセージを参照してください。See the exception message for details. たとえば、Complete() は、ReceiveAndDelete モードでメッセージを受信した場合に、この例外を生成します。For example, Complete() generates this exception if the message was received in ReceiveAndDelete mode. コードとドキュメントを確認します。Check the code and the documentation. 要求した操作が有効なことを確かめてください。Make sure the requested operation is valid. 再試行は役に立ちません。Retry doesn't help.
OperationCanceledExceptionOperationCanceledException 既に終了、中止、または破棄されたオブジェクトに対して操作を呼び出そうとしました。An attempt is made to invoke an operation on an object that has already been closed, aborted, or disposed. まれに、アンビエント トランザクションが既に破棄されている場合があります。In rare cases, the ambient transaction is already disposed. コードを確認し、破棄されたオブジェクトに対して操作を呼び出していないことを確認します。Check the code and make sure it doesn't invoke operations on a disposed object. 再試行は役に立ちません。Retry doesn't help.
UnauthorizedAccessExceptionUnauthorizedAccessException TokenProvider オブジェクトはトークンを取得できませんでした。トークンが無効です。または、操作の実行に必要な要求がトークンに含まれていません。The TokenProvider object couldn't acquire a token, the token is invalid, or the token doesn't contain the claims required to do the operation. トークン プロバイダーが正しい値を使用して作成されていることを確認します。Make sure the token provider is created with the correct values. Access Control Service の構成を確認します。Check the configuration of the Access Control Service. 再試行によって解決する場合があります。再試行ロジックをコードに追加してください。Retry might help in some cases; add retry logic to code.
ArgumentExceptionArgumentException
ArgumentNullExceptionArgumentNullException
ArgumentOutOfRangeExceptionArgumentOutOfRangeException
メソッドに指定された 1 つまたは複数の引数が無効です。One or more arguments supplied to the method are invalid.
NamespaceManager または Create に指定された URI にパス セグメントが含まれています。The URI supplied to NamespaceManager or Create contains path segment(s).
NamespaceManager または Create に指定された URI スキームが無効です。The URI scheme supplied to NamespaceManager or Create is invalid.
プロパティ値が 32 KB を超えています。The property value is larger than 32 KB.
呼び出し元のコードを確認し、引数が正しいことを確かめます。Check the calling code and make sure the arguments are correct. 再試行は役に立ちません。Retry doesn't help.
MessagingEntityNotFoundExceptionMessagingEntityNotFoundException 操作に関連付けられているエンティティが存在しないか、削除されました。Entity associated with the operation doesn't exist or it has been deleted. エンティティが存在することを確認します。Make sure the entity exists. 再試行は役に立ちません。Retry doesn't help.
MessageNotFoundExceptionMessageNotFoundException 特定のシーケンス番号を持つメッセージを受信しようとしました。Attempt to receive a message with a particular sequence number. このメッセージが見つかりません。This message isn't found. メッセージがまだ受信されていないことを確認します。Make sure the message hasn't been received already. 配信不能キューを確認し、メッセージが配信不能になっているかどうかを確かめます。Check the deadletter queue to see if the message has been deadlettered. 再試行は役に立ちません。Retry doesn't help.
MessagingCommunicationExceptionMessagingCommunicationException クライアントは Service Bus への接続を確立できません。Client isn't able to establish a connection to Service Bus. 指定されたホスト名が正しく、ホストが到達可能なことを確認してください。Make sure the supplied host name is correct and the host is reachable. 断続的な接続の問題がある場合は、再試行によって解決することがあります。Retry might help if there are intermittent connectivity issues.
ServerBusyExceptionServerBusyException この時点では、このサービスで要求を処理できません。Service isn't able to process the request at this time. クライアントは、しばらく待機してから操作をやり直すことができます。Client can wait for a period of time, then retry the operation. クライアントは、一定の間隔をおいてから再試行することができます。Client may retry after certain interval. 再試行の結果として別の例外が発生した場合は、その例外の再試行動作を確認します。If a retry results in a different exception, check retry behavior of that exception.
MessagingExceptionMessagingException 次の場合にスローされる可能性がある一般なメッセージング例外です。Generic messaging exception that may be thrown in the following cases:

異なるエンティティの種類 (たとえば、トピック) に属する名前またはパスを使用して、QueueClient を作成しようとした場合。An attempt is made to create a QueueClient using a name or path that belongs to a different entity type (for example, a topic).

256 KB を超えるメッセージを送信しようとした場合。An attempt is made to send a message larger than 256 KB.

サーバーまたはサービスで要求の処理中にエラーが発生しました。The server or service encountered an error during processing of the request. 詳細については、例外メッセージを参照してください。See the exception message for details. これは通常、一時的な例外です。It's usually a transient exception.

エンティティが調整されているため、要求は終了されました。The request was terminated because the entity is being throttled. エラー コード:50001、50002、50008。Error code: 50001, 50002, 50008.

コードを確認し、メッセージ本文にシリアル化可能なオブジェクトのみを使用していることを確かめます (または、カスタム シリアライザーを使用します)。Check the code and ensure that only serializable objects are used for the message body (or use a custom serializer).

サポートされているプロパティ値の型をドキュメントで確認し、サポートされている型だけを使用します。Check the documentation for the supported value types of the properties and only use supported types.

IsTransient プロパティを確認します。Check the IsTransient property. それが true である場合は、操作を再試行できます。If it's true, you can retry the operation.

制限のために例外が発生した場合は、数秒待ってから、操作を再試行してください。If the exception is due to throttling, wait for a few seconds and retry the operation again. 再試行動作は未定義であり、他のシナリオには役に立たない可能性があります。Retry behavior is undefined and might not help in other scenarios.
MessagingEntityAlreadyExistsExceptionMessagingEntityAlreadyExistsException そのサービスの名前空間で別のエンティティによって既に使用されている名前を持つエンティティを作成しようとしました。Attempt to create an entity with a name that is already used by another entity in that service namespace. 既存のエンティティを削除するか、作成するエンティティに別の名前を選択します。Delete the existing entity or choose a different name for the entity to be created. 再試行は役に立ちません。Retry doesn't help.
QuotaExceededExceptionQuotaExceededException メッセージング エンティティが最大許容サイズに達したか、名前空間への最大接続数を超えました。The messaging entity has reached its maximum allowable size, or the maximum number of connections to a namespace has been exceeded. エンティティまたはそのサブキューからメッセージを受信して、エンティティ内に領域を作成します。Create space in the entity by receiving messages from the entity or its subqueues. QuotaExceededException」を参照してください。See QuotaExceededException. メッセージがそれまでに削除されている場合は、再試行によって解決することがあります。Retry might help if messages have been removed in the meantime.
RuleActionExceptionRuleActionException 無効なルール アクションを作成しようとした場合、Service Bus からこの例外が返されます。Service Bus returns this exception if you attempt to create an invalid rule action. メッセージのルール アクションの処理中にエラーが発生した場合、Service Bus はその配信不能なメッセージにこの例外をアタッチします。Service Bus attaches this exception to a deadlettered message if an error occurs while processing the rule action for that message. ルール アクションが正しいことを確認してください。Check the rule action for correctness. 再試行は役に立ちません。Retry doesn't help.
FilterExceptionFilterException 無効なフィルターを作成しようとした場合、Service Bus からこの例外が返されます。Service Bus returns this exception if you attempt to create an invalid filter. メッセージのフィルターの処理中にエラーが発生した場合、Service Bus はその配信不要なメッセージにこの例外をアタッチします。Service Bus attaches this exception to a deadlettered message if an error occurred while processing the filter for that message. フィルターが正しいことを確認してください。Check the filter for correctness. 再試行は役に立ちません。Retry doesn't help.
SessionCannotBeLockedExceptionSessionCannotBeLockedException 特定のセッション ID を持つセッションを使用しようとしましたが、セッションは現在別のクライアントによってロックされています。Attempt to accept a session with a specific session ID, but the session is currently locked by another client. 別のクライアントによるセッションのロックが解除されたことを確認します。Make sure the session is unlocked by other clients. セッションがそれまでに解放されている場合は、再試行によって解決することがあります。Retry might help if the session has been released in the interim.
TransactionSizeExceededExceptionTransactionSizeExceededException トランザクションの一部になっている操作が多すぎます。Too many operations are part of the transaction. このトランザクションの一部である操作の数を減らします。Reduce the number of operations that are part of this transaction. 再試行は役に立ちません。Retry doesn't help.
MessagingEntityDisabledExceptionMessagingEntityDisabledException 無効になっているエンティティに対してランタイム操作を要求しました。Request for a runtime operation on a disabled entity. エンティティをアクティブ化します。Activate the entity. エンティティがそれまでにアクティブ化されている場合は、再試行によって解決することがあります。Retry might help if the entity has been activated in the interim.
NoMatchingSubscriptionExceptionNoMatchingSubscriptionException 事前フィルター処理が有効になっていて、一致するフィルターのないトピックにメッセージを送信した場合、Service Bus からこの例外が返されます。Service Bus returns this exception if you send a message to a topic that has pre-filtering enabled and none of the filters match. 少なくとも 1 つのフィルターに一致することを確認します。Make sure at least one filter matches. 再試行は役に立ちません。Retry doesn't help.
MessageSizeExceededExceptionMessageSizeExceededException メッセージ ペイロードが 256 KB の制限を超えています。A message payload exceeds the 256-KB limit. ただし 256 KB の制限はメッセージの合計サイズであり、システム プロパティや .NET のオーバーヘッドも含めたサイズです。The 256-KB limit is the total message size, which can include system properties and any .NET overhead. メッセージ ペイロードのサイズを小さくし、操作を再試行します。Reduce the size of the message payload, then retry the operation. 再試行は役に立ちません。Retry doesn't help.
TransactionExceptionTransactionException アンビエント トランザクション (Transaction.Current) が無効です。The ambient transaction (Transaction.Current) is invalid. トランザクションは完了または中止された可能性がありますがなります。It may have been completed or aborted. 内部例外で追加情報が提供される場合があります。Inner exception may provide additional information. 再試行は役に立ちません。Retry doesn't help.
TransactionInDoubtExceptionTransactionInDoubtException 未確定トランザクションに対して操作が試行されたか、トランザクションのコミットが試行され、トランザクションが未確定になりました。An operation is attempted on a transaction that is in doubt, or an attempt is made to commit the transaction and the transaction becomes in doubt. トランザクションは既にコミットされた可能性があるため、アプリケーションはこの例外を (特殊なケースとして) 処理する必要があります。Your application must handle this exception (as a special case), as the transaction may have already been committed. -

QuotaExceededExceptionQuotaExceededException

QuotaExceededException は、特定のエンティティのクォータが超過していることを示します。QuotaExceededException indicates that a quota for a specific entity has been exceeded.

キューとトピックQueues and topics

キューとトピックは、通常、キューのサイズに関連します。For queues and topics, it's often the size of the queue. エラー メッセージのプロパティには、次の例のようにさらに詳しい情報が含まれます。The error message property contains further details, as in the following example:

Microsoft.ServiceBus.Messaging.QuotaExceededException
Message: The maximum entity size has been reached or exceeded for Topic: 'xxx-xxx-xxx'. 
    Size of entity in bytes:1073742326, Max entity size in bytes:
1073741824..TrackingId:xxxxxxxxxxxxxxxxxxxxxxxxxx, TimeStamp:3/15/2013 7:50:18 AM

メッセージは、トピックがそのサイズの上限を超えたことを示します (この場合 1 GB (既定のサイズ上限))。The message states that the topic exceeded its size limit, in this case 1 GB (the default size limit).

名前空間Namespaces

名前空間の場合、QuotaExceededException はアプリケーションが名前空間への最大接続数を超えたことを示す場合があります。For namespaces, QuotaExceededException can indicate that an application has exceeded the maximum number of connections to a namespace. 次に例を示します。For example:

Microsoft.ServiceBus.Messaging.QuotaExceededException: ConnectionsQuotaExceeded for namespace xxx.
<tracking-id-guid>_G12 ---> 
System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: 
ConnectionsQuotaExceeded for namespace xxx.

一般的な原因Common causes

このエラーには 2 つの一般的な原因があります。配信不能キューと機能しないメッセージ受信者です。There are two common causes for this error: the dead-letter queue, and non-functioning message receivers.

  1. 配信不能キュー リーダーがメッセージを完了できない状態でロックの有効期限が切れたときにメッセージがキュー/トピックに返されます。Dead-letter queue A reader is failing to complete messages and the messages are returned to the queue/topic when the lock expires. これは、リーダーが BrokeredMessage.Complete を呼び出せない例外がリーダーに発生した場合に発生することがあります。It can happen if the reader encounters an exception that prevents it from calling BrokeredMessage.Complete. メッセージは 10 回読み取られた後、既定で配信不能キューに移動します。After a message has been read 10 times, it moves to the dead-letter queue by default. この動作は QueueDescription.MaxDeliveryCount プロパティによって制御され、既定値は 10 です。This behavior is controlled by the QueueDescription.MaxDeliveryCount property and has a default value of 10. メッセージが配信不能キューに溜まるほど、領域が占有されます。As messages pile up in the dead letter queue, they take up space.

    この問題を解決するには、他のキューの場合と同様に、配信不能キューからメッセージを読み取り、完了します。To resolve the issue, read and complete the messages from the dead-letter queue, as you would from any other queue. 配信不能キューのパスのフォーマットに役立つ FormatDeadLetterPath メソッドを使用できます。You can use the FormatDeadLetterPath method to help format the dead-letter queue path.

  2. 受信者が停止しましたReceiver stopped. 受信者によるキューまたはサブスクリプションからのメッセージの受信が停止されています。A receiver has stopped receiving messages from a queue or subscription. これを特定するには、メッセージの完全な詳細情報を表示する QueueDescription.MessageCountDetails プロパティを確認します。The way to identify this is to look at the QueueDescription.MessageCountDetails property, which shows the full breakdown of the messages. ActiveMessageCount プロパティ値が大きいか増えている場合は、メッセージが読み取られる速度が書き込まれる速度に追いついていません。If the ActiveMessageCount property is high or growing, then the messages aren't being read as fast as they are being written.

TimeoutExceptionTimeoutException

TimeoutException は、ユーザーが開始した操作が操作タイムアウトより時間がかかっていることを示します。A TimeoutException indicates that a user-initiated operation is taking longer than the operation timeout.

ServicePointManager.DefaultConnectionLimit プロパティの値を確認する必要があります。この制限に達した場合も、TimeoutException が発生する可能性があります。You should check the value of the ServicePointManager.DefaultConnectionLimit property, as hitting this limit can also cause a TimeoutException.

キューとトピックQueues and topics

キューとトピックでは、タイムアウトは MessagingFactorySettings.OperationTimeout プロパティで接続文字列の一部として、または ServiceBusConnectionStringBuilder を通じて指定されます。For queues and topics, the timeout is specified either in the MessagingFactorySettings.OperationTimeout property, as part of the connection string, or through ServiceBusConnectionStringBuilder. エラー メッセージ自体はさまざまですが、これには常に現在の操作に指定されたタイムアウト値が含まれます。The error message itself might vary, but it always contains the timeout value specified for the current operation.

MessageLockLostExceptionMessageLockLostException

原因Cause

MessageLockLostException は、PeekLock 受信モードを使用してメッセージを受信し、クライアントによって保持されているロックがサービス側で期限切れになったときにスローされます。The MessageLockLostException is thrown when a message is received using the PeekLock Receive mode and the lock held by the client expires on the service side.

メッセージのロックは、さまざまな理由により期限切れになる場合があります。The lock on a message may expire due to various reasons -

  • ロック タイマーが、クライアント アプリケーションによって更新される前に期限切れになっている。The lock timer has expired before it was renewed by the client application.
  • クライアント アプリケーションがロックを取得し、永続ストアにそれを保存してから再起動した。The client application acquired the lock, saved it to a persistent store and then restarted. 再起動後、クライアント アプリケーションが、配信中のメッセージを調べて、これらを完了しようとした。Once it restarted, the client application looked at the inflight messages and tried to complete these.

解像度Resolution

MessageLockLostException が発生した場合、クライアント アプリケーションはメッセージを処理できなくなります。In the event of a MessageLockLostException, the client application can no longer process the message. クライアント アプリケーションでは、必要に応じて、分析のために例外をログに記録することもできますが、クライアントはメッセージを破棄する "必要があります"。The client application may optionally consider logging the exception for analysis, but the client must dispose off the message.

メッセージのロックの有効期限が切れたため、キュー (またはサブスクリプション) に戻り、receive を呼び出す次のクライアント アプリケーションで処理できるようになります。Since the lock on the message has expired, it would go back on the Queue (or Subscription) and can be processed by the next client application which calls receive.

MaxDeliveryCount を超えた場合、メッセージは DeadLetterQueue に移動される可能性があります。If the MaxDeliveryCount has exceeded then the message may be moved to the DeadLetterQueue.

SessionLockLostExceptionSessionLockLostException

原因Cause

SessionLockLostException は、セッションが受け入れられ、クライアントによって保持されているロックがサービス側で期限切れになったときにスローされます。The SessionLockLostException is thrown when a session is accepted and the lock held by the client expires on the service side.

セッションのロックは、さまざまな理由により期限切れになる場合があります。The lock on a session may expire due to various reasons -

  • ロック タイマーが、クライアント アプリケーションによって更新される前に期限切れになっている。The lock timer has expired before it was renewed by the client application.
  • クライアント アプリケーションがロックを取得し、永続ストアにそれを保存してから再起動した。The client application acquired the lock, saved it to a persistent store and then restarted. 再起動後、クライアント アプリケーションが、転送中のセッションを調べて、これらのセッション内のメッセージを処理しようとした。Once it restarted, the client application looked at the inflight sessions and tried to process the messages in those sessions.

解像度Resolution

SessionLockLostException が発生した場合、クライアント アプリケーションがセッションでメッセージを処理できなくなります。In the event of a SessionLockLostException, the client application can no longer process the messages on the session. クライアント アプリケーションでは、分析のために例外をログに記録することもできますが、クライアントはメッセージを破棄する "必要があります"。The client application may consider logging the exception for analysis, but the client must dispose off the message.

セッションのロックの有効期限が切れたため、キュー (またはサブスクリプション) を破棄して、セッションを受け入れる次のクライアント アプリケーションでロックできるようになります。Since the lock on the session has expired, it would go back on the Queue (or Subscription) and can be locked by the next client application which accepts the session. セッション ロックは、特定の時点で 1 つのクライアント アプリケーションによって保持されるため、順番どおりの処理が保証されます。Since the session lock is held by a single client application at any given time, the in-order processing is guaranteed.

SocketExceptionSocketException

原因Cause

次の場合には、SocketException がスローされます。A SocketException is thrown in the below cases -

  • 指定された時間が経過してもホストが適切に応答しなかったために接続試行が失敗した場合 (TCP エラー コード 10060)。When a connection attempt fails because the host did not properly respond after a specified time (TCP error code 10060).
  • 接続されたホストが応答できなかったため、確立された接続が失敗した場合。An established connection failed because connected host has failed to respond.
  • メッセージの処理中にエラーが発生したか、リモート ホストがタイムアウトを超えた場合。There was an error processing the message or the timeout is exceeded by the remote host.
  • 基になるネットワーク リソースの問題。Underlying network resource issue.

解像度Resolution

SocketException エラーは、アプリケーションをホストしている VM が名前 <mynamespace>.servicebus.windows.net を対応する IP アドレスに変換できないことを示します。The SocketException errors indicate that the VM hosting the applications is unable to convert the name <mynamespace>.servicebus.windows.net to the corresponding IP address.

IP アドレスへのマッピングで、次のコマンドが成功するかどうかを確認してください。Check to see if below command succeeds in mapping to an IP address.

PS C:\> nslookup <mynamespace>.servicebus.windows.net

出力は次のようになるはずですwhich should provide an output as below

Name:    <cloudappinstance>.cloudapp.net
Address:  XX.XX.XXX.240
Aliases:  <mynamespace>.servicebus.windows.net

上記の名前が、IP と名前空間のエイリアスに解決されない場合は、どのネットワーク管理者がさらに調査するかを確認します。If the above name does not resolve to an IP and the namespace alias, check which the network administrator to investigate further. 名前解決は、通常、顧客ネットワークのリソースである DNS サーバーを介して行われます。Name resolution is done through a DNS server typically a resource in the customer network. DNS 解決が Azure DNS によって行われる場合は、Azure サポートにお問い合わせください。If the DNS resolution is done by Azure DNS please contact Azure support.

名前解決が期待したとおりに機能している場合は、ここで Azure Service Bus への接続が許可されているかどうかを確認してくださいIf name resolution works as expected, check if connections to Azure Service Bus is allowed here

MessagingExceptionMessagingException

原因Cause

MessagingException は、さまざまな理由でスローされる可能性がある一般的な例外です。MessagingException is a generic exception that may be thrown for various reasons. その理由の一部を以下に示します。Some of the reasons are listed below.

  • トピックまたはサブスクリプションQueueClient を作成しようとした。An attempt is made to create a QueueClient on a Topic or a Subscription.
  • 送信されたメッセージのサイズが、指定されたレベルの制限を超えている。The size of the message sent is greater than the limit for the given tier. Service Bus のクォータと制限の詳細については、こちらをお読みください。Read more about the Service Bus quotas and limits.
  • 調整により、特定のデータ プレーン要求 (送信、受信、完了、破棄) が終了した。Specific data plane request (send, receive, complete, abandon) was terminated due to throttling.
  • サービスのアップグレードと再起動によって一時的な問題が発生した。Transient issues caused due to service upgrades and restarts.

注意

上記の例外の一覧はすべてを網羅しているわけではありません。The above list of exceptions is not exhaustive.

解像度Resolution

解決手順は、MessagingException がスローされる原因によって異なります。The resolution steps depends on what caused the MessagingException to be thrown.

  • 一時的な問題 (isTransienttrue に設定されている) または調整の問題の場合は、操作を再試行することによって解決される場合があります。For transient issues (where isTransient is set to true) or for throttling issues, retrying the operation may resolve it. これには、SDK の既定の再試行ポリシーを利用できます。The default retry policy on the SDK can be leveraged for this.
  • その他の問題については、例外の詳細に問題が示され、解決手順を推測することができます。For other issues, the details in the exception indicate the issue and resolution steps can be deduced from the same.

次のステップNext steps

Service Bus の詳細な .NET API リファレンスについては、「Azure .NET API reference」(Azure .NET API リファレンス) を参照してください。For the complete Service Bus .NET API reference, see the Azure .NET API reference. トラブルシューティングのヒントについては、トラブルシューティング ガイドに関するページを参照してください。For troubleshooting tips, see the Troubleshooting guide