3

当我们将 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)

我们之所以关心将 PC 的本地时间设置为一个月前的原因是因为我们正在测试一个解决方案,以解决我们遇到的问题,即 2013 年 3 月 10 日的时间提前以及与之相关的无效时间间隔。

我们想了解这个问题以及它为什么会发生。

4

1 回答 1

2

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

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

COPY /B ABC.DLL +,,
于 2013-04-10T15:53:03.283 回答