Quantcast
Channel: Azure フォーラム
Viewing all articles
Browse latest Browse all 1798

Azure Service Bus Queueが突然使えなくなりました

$
0
0

従来稼働していたService Bus Queueのプログラムが突然エラーを発生するようになりました。

--------------------------------------
型 'System.UnauthorizedAccessException' のハンドルされていない例外が Microsoft.ServiceBus.dll で発生しました

追加情報:リモート サーバーがエラーを返しました: (401) 許可されていません claim is empty. TrackingId:f1ae8661-2b46-433e-9621-c7b91c5927e3_G7, SystemTracker:digipub.servicebus.windows.net:DigipubOrder_Session, Timestamp:7/20/2016 2:18:55 AM
--------------------------------------

調べたところ、エラーの発生場所は、以下の"namespaceManager.QueueExists(queueName)"であり、権限がないとのメッセージのようです。Azure管理ポータルでConnectionStringを確認しましたが、間違いありません。

○ConnectionStringの有効期限があるのでしょうか。

○その場合には、どのように更新すればよいのでしょうか。

○あるいはService Bus Queueサービス自体のバージョンアップが影響している可能性もあると思います。その場合には、どのように対処すべきかお教えください。

○また、このような稼働中のプログラム自体に直接影響を与えるような「破壊的」バージョンアップが行われる場合、どこに事前告知が行われるのでしょうか。

--------------------------------------

(PowerShell用ライブラリのC#ソース)

        public QueueClient InitializeParamWithSession(string connectionString, string queueName, bool useSession, bool? deleteAfterReceipt)
        {
            QueueDescription queueDescription = new QueueDescription(queueName)
            {
                RequiresSession = useSession
            };

            var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);

            if (!namespaceManager.QueueExists(queueName))
            {
                namespaceManager.CreateQueue(queueDescription);
            }
            var GQueueClient = CreateQueueClient(connectionString, queueName, deleteAfterReceipt);
            return GQueueClient;
        }

        public QueueClient CreateQueueClient(string connectionString,string queueName, bool? deleteAfterReceipt)
        {
            ReceiveMode receiveMode;
            if (deleteAfterReceipt != null)
            {
                if (deleteAfterReceipt == true)
                {
                    receiveMode = ReceiveMode.ReceiveAndDelete;
                }
                else
                {
                    receiveMode = ReceiveMode.PeekLock;
                }
                return MessagingFactory.CreateFromConnectionString(connectionString).CreateQueueClient(queueName, receiveMode);

            }
            else
            {
                return MessagingFactory.CreateFromConnectionString(connectionString).CreateQueueClient(queueName);

            }
        }
--------------------------------------

どうぞよろしくお願いいたします。


Viewing all articles
Browse latest Browse all 1798

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>