2010-04-12 137 views
4

每隔一段时间,我的asp.net应用程序中就会出现大约10-20个相同的错误。它总是相同的,我想知道是否有人试图入侵(每月发生一次)。ASP.NET中的奇怪错误

来源:的System.Web

消息:文件 '/~/Default.aspx' 不存在。

用户IP: 89.122.29.80

用户的浏览器:未知0.0

用户OS:未知

堆栈跟踪:在 的System.Web.UI。 Util.CheckVirtualFileExists(VirtualPath virtualPath)at System.Web.Compilation.B uildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,布尔noBuild,布尔 allowCrossApp,布尔 allowBuildInPrecompile)在 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext的 上下文,VirtualPath virtualPath, 布尔noBuild,布尔 allowCrossApp,布尔 allowBuildInPrecompile)在 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath,HttpContext的上下文中, 布尔allowCrossApp,布尔 noAssert)在 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath,类型requiredBaseType, HttpContext的上下文中,布尔 allowCrossApp,布尔noAssert)在 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext的 上下文中,字符串的RequestType, VirtualPath virtualPath,字符串 physicalPath)在 的System.Web。 UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext的 上下文中,字符串的RequestType, VirtualPath virtualPath,字符串 physicalPath)在 System.Web.HttpApplication.MapHttpHandler(HttpContext的 上下文中,字符串的RequestType, VirtualPath路径,字符串 pathTranslated,布尔useA ppConfig) 在 System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 一步,布尔completedSynchronously)

为什么地球上有人会试图访问“/~/Default.aspx”?

回答

1

如果您尝试在页面生命周期中将HyperLink控件的NavigateUrl设置得太晚,有时会发生这种情况。确保在生成相关Url之后,您不在代码中创建超链接。

+0

看起来像我的RadMenu上的“NavigateURL”被设置错误...我会尝试找到一种方法来解决它。基本上HTML是正确的,所以将网站导航到一般用户是好的,但Javascript被搞砸了,任何试图抓取基于JS的机器人都会被发送到错误的页面。 – 2010-04-12 16:25:06

0

也许是因为机器人或爬虫。

1

在任何流行良好的网站上,您会收到来自错误编写的抓取工具,严重写入的缓存服务器防病毒软件和浏览器工具栏插件的大量404错误,因为它们每次都会尝试第二次猜测哪些URL会引导页面前进。通常他们会误解嵌入式Javascript,试图找出它可能链接到的页面。

但我从来没有见过一个〜字符在里面。这意味着你在页面上有一个〜表示你在页面某处出现了〜/ Default.aspx文字。你能找到有问题的页面,并查看它的源代码,看看它是否有某个地方?

如果您根据用户代理改变页面内容,您是否可以重放相同的请求并查看源代码?

您是否对您的网站运行链接检查器?