设置本地时钟会导致WebResource.axd错误

时间:2013-04-10 15:29:30

标签: asp.net-mvc webresource.axd

当我们将pc的本地时间设置为过去一个月时,我们会在chrome控制台中收到一个或多个WebResource.axd错误:

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:64052/WebResource.axd?d=Cjzj7jVTY4EPdSq5mvGjoSrxnLXMy3QfSg…KKG_LUt-hCit6C6aGtLnP8Fyeauwxri1mHWA2&t=635010758504375000&_=1362893669293

我们在事件日志中也收到相应的错误:

URL: http://localhost:64052/WebResource.axd?d=uP9nGy6M3n_JdoEveOzmj96yg4ABiXKJAdqhkVRgVBsWd3gL5y7_K1_XWTQiJgcc8SBHZa93bfpldXjV9aPWUerfEFbhpKKC9spP0hhLnaliKvPWoHVXRzkiP3HsyBkV6i4cq3odGmq7L2OSDuFokuAHjYKYaS-AYoezs0raVsyEKQp9gYS_rkUnPMssEChEGrQLareZzDiKt9RKyN7I-A2&t=635010758504375000?version=4914; FilePath: /WebResource.axd: System.Web.HttpException (0x80004005): This is an invalid webresource request. 
at System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

我们之所以关心将个人电脑的本地时间设定为一个月前的原因,是因为我们正在测试我们在2013年3月10日提前出现的问题以及与之相关的无效时间间隔的问题。它

我们希望了解问题及其可能发生的原因。

1 个答案:

答案 0 :(得分:2)

一个可能的原因是嵌入式资源来自将来具有文件系统修改日期的DLL。当ASP.NET处理WebResource.axd请求时,它会尝试将Last-Modified HTTP标头设置为DLL的修改日期。但是,如果日期晚于当前系统时间,HttpCachePolicy.SetLastModified将引发异常。

尝试识别包含嵌入资源的DLL,并将其文件系统修改日期重置为当前系统时间(或过去的日期)。为此,您可以启动命令提示符并使用以下COPY命令(as discussed by Raymond Chen):

COPY /B ABC.DLL +,,