2016-04-22 39 views
0

Web Azureがサーバー上で稼動しています(Azureでホストされていない)。 、WebjobがAzureキューの処理ジョブを完了したときに404 Not Found例外が発生しました

Unhandled Exception: Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (404) Not Found. ---> System.Net.WebException: The remote server returned an error: (404) Not Found. 
    at Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException[T](HttpStatusCode expectedStatusCode, HttpStatusCode actualStatusCode, T retVal, StorageCommandBase`1 cmd, Exception ex) 
    at Microsoft.WindowsAzure.Storage.Blob.CloudBlob.<DeleteBlobImpl>b__29(RESTCommand`1 cmd, HttpWebResponse resp, Exception ex, OperationContext ctx) 
    at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndGetResponse[T](IAsyncResult getResponseResult) 
    --- End of inner exception stack trace --- 
    at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndExecuteAsync[T](IAsyncResult result) 
    at Microsoft.WindowsAzure.Storage.Blob.CloudBlob.EndDelete(IAsyncResult asyncResult) 
    at Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions.<>c__DisplayClass4.<CreateCallbackVoid>b__3(IAsyncResult ar) 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Azure.WebJobs.Host.Protocols.PersistentQueueWriter`1.<DeleteAsync>d__6.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Azure.WebJobs.Host.Loggers.CompositeFunctionInstanceLogger.<DeleteLogFunctionStartedAsync>d__e.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.<TryExecuteAsync>d__1.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Azure.WebJobs.Host.Executors.TriggeredFunctionExecutor`1.<TryExecuteAsync>d__0.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueTriggerExecutor.<ExecuteAsync>d__1.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueListener.<ProcessMessageAsync>d__11.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at Microsoft.Azure.WebJobs.Host.Timers.BackgroundExceptionDispatcher.<>c__DisplayClass1.<Throw>b__0() 
    at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
    at System.Threading.ThreadHelper.ThreadStart() 

webjobが私のdevのマシン上で正常に動作:これは、キューの罰金からジョブを取得し、何の問題もなく、それらを処理しますが、それはキューにジョブを処理し終えたとき、私は次の例外を取得していますすることができます別のPCでは、Windows 2012 R2サーバで例外が発生します。別のAzureアカウントのキューから読み込むように接続文字列を変更すると、正常に動作するので、Azureメインのアカウントの設定に問題があると推測されますが、実行時に問題がない理由はわかりません他のマシンで

私は現在、WindowsAzure.Storageのv7.0.0でMicrosoft.Azure.WebJobsのv1.1.0を使用しています。 v5.0.2のWindowsAzure.Storageを持つMicrosoft.Azure.WebJobsのv1.1.1で同じ結果が得られます。

私は質問Azure Web Job-The remote server returned 404の提案に従っており、これら4つのブロブコンテナが設定されていることを確認できます。

編集 私は1.1.2にmicrosoft.azure.webjobs nugetパッケージを更新し、これは、上記の問題を解決するように見えたが、突然、2週間楽しくエラーを実行した後に登場し直し。コードの変更や再配置はありませんでした。正常に動作していたコードは何の理由もなく動作を停止しました。私が知る限り、Azureアカウントに変更はありませんでした。私は別のAzureアカウントを指すように設定ファイルを変更して、もう一度うまく動作します。

404の原因を教えてください。

+0

あなたはそのコードを共有できますか? "設定を変更する"とは、単に接続を変更するなどのことですか? –

+0

設定を変更することは、設定ファイル内の接続文字列を変更することを意味します。他の設定やコードは変更されません。私は明確にするために質問を編集しました。 –

+0

この問題を解決しましたか? –

答えて

0

未処理の例外:Microsoft.WindowsAzure.Storage.StorageException

これは、あなたが適切にストレージを設定していないことを意味します。 Webジョブは、app.config内に2つのappSettingsを設定する必要があります。AzureWebJobsDashboard,AzureWebJobsStorage

<add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName=ACCOUNTNAME;AccountKey=ACCOUNTKEY" /> 
<add name="AzureWebJobsStorage" connectionString="DefaultEndpointsProtocol=https;AccountName=ACCOUNTNAME;AccountKey=ACCOUNTKEY" /> 

この設定でも、同じBLOBストレージを指す場合があります.Webジョブは、必要なフォルダを作成して書き込みます。

Webjobは、私は新しいにMicrosoft.Azure.WebJobs nugetパッケージを更新しました

+0

私は自分の設定ファイルにこれらの設定を両方持たせていました。同じ設定で、アプリは他のマシンで正常に動作するので、設定上の問題ではないと思います。 –

0

をログと、それがデータを書き込もうとするので、それが失敗した理由であるブロブストレージにいくつかの他のものを書いてますが、カントアクセス記憶されます1.1.2のバージョンで、今は正常に動作しているようです。

更新された質問を参照してください。この回答はもう有効ではありません

関連する問題