我有一个ASP.NET C#应用程序,我总是会遇到不同的错误,就像你在下面看到的那样。有谁知道如何解决这个问题?谢谢。
Page: http://www.sitename.com/WebResource.axd?d=OYuYekAZWSmOdOaJyDRqKg2&t=634022222718906250 Message: This is an invalid webresource request. Source: System.Web Inner Exception: Stack Trace: 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)
答案 0 :(得分:5)
我可以想到三个原因,其中只有一个原因实际指向了一个真正的错误:
有人正在尝试利用asp.net中的安全漏洞(补丁here),如果你能搞清楚,你可以让其中一个axd处理程序在Web服务器上提供任何内容加密密钥。这不太可能,但可能。在这种情况下,您不必执行任何操作,但请确保已应用该修复。
(这是我在刚刚完成的网站上观察到的情况)该方案是现有网站已被替换或网站服务器已经改变的地方。如果你有一个公开的网站,比如说,人们可能经常会查看“缓存”页面,如果他们试图访问旧内容,或者确实如果当前页面不符合预期(可能是错误或者确实只是不同)。问题是如果站点使用webresource.axd,该页面将引用它。浏览器打开缓存的html,然后发出请求。如果网站已已更改或已替换,则旧的axd链接可能不再有效,并将导致错误。
如果这是一个mvc站点,您可能不再使用axd呈现的资源,在这种情况下,您可以考虑通过编辑Web配置并在其中的处理程序部分为其添加“删除”条目来从站点中删除它们。 system.webserver。然后请求将产生404并且不再会出现错误。同样,如果网站合法使用axd,但你不能通过浏览自己来重现错误,那么你可能没有什么可担心的。
网站在网络服务器场中运行,因此每台计算机都需要具有相同的计算机密钥,如果是这种情况,则需要注意这一点。我把它留到了最后,因为看着你的其他问题,我假设一个网络农场没有参与:)
我本来希望更好地格式化这个答案,但我在手机上,道歉!
答案 1 :(得分:1)
除了安德拉斯彻底(并且从电话:)给人留下深刻印象的答案,IE8中有一个错误(已修补,但有些可能仍然存在),这会导致类似的错误。虽然在这种情况下,请求最后带有垃圾,但这似乎不是你的情况,但它可能会给你一个不同的东西来看待。这是关于SO的问题,谈论它