每隔一段时间我就会在我的asp.net应用程序上得到大约10到20个相同的错误。它总是一样的,我想知道是不是有人试图入侵(它发生在一个月左右)。
来源: System.Web
消息:文件'/ ~/Default.aspx'不存在。
用户IP: 89.122.29.80
用户浏览器:未知0.0
用户操作系统:未知
堆栈跟踪: at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath)at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext的 上下文,VirtualPath虚拟路径, 布尔值noBuild,布尔值 allowCrossApp,Boolean allowBuildInPrecompile)at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath,HttpContext上下文, Boolean allowCrossApp,Boolean noAssert)at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath,Type requiredBaseType, HttpContext上下文,布尔值 allowCrossApp,Boolean noAssert)at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext的 context,String requestType, VirtualPath virtualPath,String physicalPath)at System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext的 context,String requestType, VirtualPath virtualPath,String physicalPath)at System.Web.HttpApplication.MapHttpHandler(HttpContext的 context,String requestType, VirtualPath路径,String pathTranslated,Boolean useAppConfig) 在 System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()at System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean completedSynchronously)
为什么有人试图访问“/ ~/Default.aspx”?
答案 0 :(得分:1)
在任何运营良好的网站上,您都会收到来自写得不好的抓取工具,编写错误的缓存服务器防病毒软件和浏览器工具栏插件的大量404错误,因为他们每个人都试图猜测哪些网址引出了网页。通常他们会误解嵌入式Javascript,试图弄清楚它可能链接到哪些页面。
但我从来没有见过一个带有〜字符的人。这意味着你在一个页面上有一个〜,暗示你在页面的某个地方有一个文字〜/ Default.aspx。你能找到有问题的页面并查看它的来源,看看它上面是否有某个地方?
如果您根据用户代理更改页面内容,是否可以重播相同的请求并查看来源?
您是否针对您的网站运行了链接检查程序?
答案 1 :(得分:1)
如果您尝试在页面生命周期中过晚地在HyperLink控件上设置NavigateUrl,则有时会发生这种情况。生成相对URL后,请确保您没有在代码中创建HyperLink。
答案 2 :(得分:0)
可能是因为机器人或爬虫。