8

最近、Azure にデプロイされたプロジェクトが、これらの例外を 1 日に 2 つまたは 3 つスローし始めました。私の調査によると、これは多くの場合、将来のタイムスタンプを持つアセンブリが原因であり、通常は他のタイムゾーンのマシンに展開することが原因です (これは良いリソースでした)。アプリが公開されてから 1 年以上、この問題は発生しておらず、少数の例外が示唆するよりも多くのトラフィックを受信して​​います。

リモート デスクトップを有効にして再展開し、dll のタイムスタンプと \Windows\Microsoft.NET および \Windows\assembly ディレクトリの内容を確認しましたが、「未来」のタイムスタンプは見つかりませんでした。この時点で私は立ち往生しており、アイデアに感謝します。

スタックトレース:

System.ArgumentOutOfRangeException: 指定された引数が有効な値の範囲外でした。パラメーター名: System.Web.HttpCachePolicy.UtcSetLastModified(DateTime utcDate) の utcDate System.Web.HttpCachePolicy.SetLastModified(DateTime date) の System.Web.UI.Page.InitOutputCache(OutputCacheParameters cacheSettings) の System.Web.UI.Page .ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) System.Web.UI.Page.ProcessRequest() で System.Web.UI.Page.ProcessRequest(HttpContext コンテキスト) で System.Web.Mvc.OutputCacheAttribute.OnResultExecuting(ResultExecutingContext filterContext) でSystem.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter フィルター、ResultExecutingContext preContext、Func1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func1 継続) System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func) で1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IListSystem.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass27.b__24(IAsyncResult asyncResult) at System.Web.Mvc.AsyncController.<>c__DisplayClass19.b__14(IAsyncResult asyncResult) at System.Web.Mvc .Async.AsyncResultWrapper.<>c__DisplayClass4.b__3(IAsyncResult ar) System.Web.Mvc.AsyncController.EndExecuteCore(IAsyncResult asyncResult) で System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.b__3(IAsyncResult ar) at System .Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.b__4(IAsyncResult asyncResult) (System.Web.Mvc.Async.AsyncResultWrapper)。<>c__DisplayClass4.b__3(IAsyncResult ar) (System.Web.HttpApplication.CallHandlerExecutionStep.System) System.Web の .Web.HttpApplication.IExecutionStep.Execute()。HttpApplication.ExecuteStep (IExecutionStep ステップ、ブール値 & 完了した同期)

4

1 に答える 1

0

タイムゾーンの問題は Azure 環境では本当に頭の痛い問題なので、スタートアップ タスクを追加して Azure 環境のタイムゾーンを変更することをお勧めします。これで問題が解決するとは言いませんが、試してみても害はありませんか? Azure 環境のタイムゾーンを変更するには:

1) tzutil /s "Pacific Standard Time".cmd として保存し、ファイルをプロジェクトに含めます。

2) ファイルのプロパティ画面で、[出力にコピー] オプションとして [常にコピー] を選択し、ビルド アクションとして [なし] を選択します。

3) ServiceDefinition ファイルに以下を追加します。

<Startup>
    <Task commandLine="nameOfFileYouCreated.cmd" executionContext="elevated" />
</Startup>

4) もちろん、プロジェクトで DateTime 参照を調整します。変換などを処理する必要はありません。

于 2013-05-08T07:25:21.130 に答える