我有一个 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)
我可以想到三个原因,其中只有一个实际上指向真正的错误:
-
有人试图利用 asp.net 中的安全漏洞(补丁here http://weblogs.asp.net/scottgu/archive/2010/09/30/asp-net-security-fix-now-on-windows-update.aspx),如果您能找出加密密钥,您可以在其中使用 axd 处理程序之一来提供 Web 服务器上的任何内容。这不太可能,但有可能。在这种情况下,您无需执行任何操作,只需确保应用了该修复即可。
-
(这是我在刚刚完成的网站上观察到的情况)该场景是现有网站已被替换或 Web 服务器已从以前的状态更改。例如,如果您有一个在 Google 上公开的网站,那么人们可能会经常查看“缓存”页面,如果他们试图访问旧内容,或者当前页面不是他们所期望的(可能是一个错误,或者实际上只是不同的)。问题是,如果站点使用 webresource.axd,则该页面将引用它。浏览器打开缓存的html,然后发出请求。如果网站has如果已更改或已替换,则旧的 axd 链接可能不再有效并会导致错误。
如果这是一个 mvc 站点,您可能不再使用 axds 渲染的资源,在这种情况下,您可以考虑通过编辑 Web 配置并在 system.webserver 的处理程序部分中添加“删除”条目来将它们从站点中删除。然后请求将产生 404,并且您将不再收到错误。同样,如果该网站确实合法使用 axds,但您无法通过浏览它来重现错误,那么您可能无需担心。
-
该网站在网络场中运行,因此每台计算机都需要具有相同的计算机密钥,如果是这种情况,这实际上需要注意。不过,我把它留到了最后,因为看了你的其他问题,我假设不涉及网络农场:)
我本来想更好地格式化这个答案,但我在手机上,抱歉!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)