我有一个ASP.NET应用程序被卡住加载页面(没有发生过,没有超时,没有)。 在procmon中我看到一个BUFFER溢出为QueryInformationVolume和QueryAllInformationFile为default.aspx。 我怎么知道发生了什么?
编辑:添加示例行
23:11.7 w3wp.exe 8648 QueryInformationVolume D:\ www \ AppName \ Default.aspx BUFFER OVERFLOW VolumeCreationTime:11/8/2007 9:18:37 AM,VolumeSerialNumber:AA05-4B19,SupportsObjects:True,VolumeLabel:DAT; 23:11.7 w3wp.exe 8648 QueryAllInformationFile D:\ www \ AppName \ Default.aspx BUFFER OVERFLOW CreationTime:9/16/2008 9:38:26 PM,LastAccessTime:9/2/2009 10:21:51 AM,LastWriteTime: 8/27/2009 4:49:00 PM,ChangeTime:8/27/2009 4:49:00 PM,FileAttributes:A,AllocationSize:4,096,EndOfFile:644,NumberOfLinks:1,DeletePending:False,Directory:False,索引号:0x5a00000002e419,EaSize:0,访问:通用读取,位置:0,模式:,AlignmentRequirement:Byte
缓冲区溢出是没有的。 看看马克Russinovich的博客的解释。
这些错误是否表明有问题? 不,它们是系统的标准方式,表明有更多的信息可用于请求者的输出缓冲区。 换句话说,系统告诉调用者,如果要复制所有请求的数据,它将溢出缓冲区。 因此,错误确实意味着避免了缓冲区溢出,而不是发生了这种情况。
底线是,Filemon追踪中的缓冲区溢出错误并不表示存在安全问题,而且通常也不是由于编程错误造成的。
通过debugging?
这是你写的一些应用程序,还是其他人把它放在你正在pipe理的Web服务器上?
我不build议使用IISRESET,因为它有许多副作用。 你是否停止并通过修改web.config文件或在IISpipe理单元本身重新启动AppPool? 你可以提供更多关于实际的ASP.NET应用程序本身的信息吗?
QueryInformation是一个IRP(I / O请求包)function代码。 你可以在MSDN上看到这是一个文件系统错误。 IIS是否redirect到另一台服务器上的文件共享? 这些文件是否被locking以便写入? 也许另一个进程/应用程序占用文件系统,IIS正在等待Default.aspx。