4

我有一个用经典 ASP 制作的网站,我正在尝试从 windows xp 开发机器迁移到 windows 8 开发机器,并在生产中从 Windows Server 2003 机器迁移到 Server 2012。我们使用 Crystal Reports Report Application Server 9 生成报告。

在 Windows 8 中,我安装了 IIS 8 并将 .NET 2 经典应用程序池配置为使用 32 位应用程序并将标识设置为网络服务。我安装了 CR9 RAS 和 64 位运行时。当我在网站上打印报告时,我在创建 CR 对象的第一行收到此错误:

An unhandled win32 exception occured in w3wp.exe

我运行了 DebugDiag 并能够获得如下崩溃转储:

In w3wp__.NET v2.0 Classic__PID__2220__Date__10_03_2013__Time_12_59_55PM__954__Second_Chance_Exception_C000041D.dmp the module C:\Windows\System32\user32.dll has caused an access violation exception (0xC0000005) when trying to write to memory location 0x03f77de0 on thread 35

Thread 29 - System ID 2736
Entry point   cachemanager!DllUnregisterServer+accd 
Create time   9/26/2013 12:30:24 PM 
Time spent in user mode   0 Days 0:0:0.0 
Time spent in kernel mode   0 Days 0:0:0.0 

Full Call Stack

Function     Arg 1     Arg 2     Arg 3     Arg 4   Source 
cachemanager!DllUnregisterServer+78c5     029e8a63     000e00be     00000081     00000000    
user32!UserCallWinProcCheckWow+100     029e8a63     029e8a63     00000000     000e00be    
user32!DispatchClientMessage+15d     012a2170     00000000     00000081     00000000    
user32!__fnINLPCREATESTRUCT+8d     03fdf6f4     00000000     03fdfc10     770e2bf0    
ntdll!KiUserCallbackDispatcher+2e     00000000     0000c083     0000c083     00000000    
user32!VerNtUserCreateWindowEx+238     00000000     00000000     80000000     00000000    
user32!CreateWindowInternal+26b     0000c083     00000000     80000000     00000000    
user32!CreateWindowExW+37     00000000     0000c083     00000000     80000000    
cachemanager!DllUnregisterServer+7a3d     00000000     03fdfba8     00000000     80000000    
cachemanager!DllUnregisterServer+75d9     00000000     05335d98     05335d98     00000000    
cachemanager!DllUnregisterServer+6e94     05335688     00000000     00000000     05335d98    
cachemanager!DllUnregisterServer+ad2c     05335d98     03fdfc70     770fbf39     05335d98    
kernel32!BaseThreadInitThunk+e     05335d98     8eb1ec43     00000000     00000000    
ntdll!__RtlUserThreadStart+72     029ebeab     05335d98     ffffffff     77171df7    
ntdll!_RtlUserThreadStart+1b     029ebeab     05335d98     00000000     00000000    


Exception Information
In w3wp__.NET v2.0 Classic__PID__356__Date__09_26_2013__Time_12_30_24PM__637__Second_Chance_Exception_C000041D.dmp the module C:\Windows\System32\user32.dll has caused an access violation exception (0xC0000005) when trying to write to memory location 0x04443000 on thread 29

Module Information 
Image Name: C:\Windows\System32\user32.dll   Symbol Type:  PDB 
Base address: 0x00905a4d   Time Stamp:  Thu Sep 20 00:10:05 2012  
Checksum: 0x00000000   Comments:   
COM DLL: False   Company Name:  Microsoft Corporation 
ISAPIExtension: False   File Description:  Multi-User Windows USER API Client DLL 
ISAPIFilter: False   File Version:  6.2.9200.16420 (win8_gdr.120919-1813) 
Managed DLL: False   Internal Name:  user32 
VB DLL: False   Legal Copyright:  © Microsoft Corporation. All rights reserved. 
Loaded Image Name:  user32.dll   Legal Trademarks:   
Mapped Image Name:     Original filename:  user32 
Module name:  user32   Private Build:   
Single Threaded:  False   Product Name:  Microsoft® Windows® Operating System 
Module Size:  1.09 MBytes   Product Version:  6.2.9200.16420 
Symbol File Name:  c:\symcache\wuser32.pdb\81836B9A16A64DBBB5209E254A61DD072\wuser32.pdb   Special Build:  & 

似乎网络服务可能无法访问某些东西,所以我去了安装 CR 的目录、整个 C 驱动器、Windows 临时文件夹和我的网站文件夹,并让它们完全控制来自网络服务,没有任何变化。

我尝试卸载水晶报告并点击该页面以查看不同的错误,但我仍然遇到相同的崩溃,所以我不确定这是实际安装问题还是更严重的问题,就我如何为 IIS 配置 IIS 或经典 ASP 而言8.

我现在正在尝试 sysinternals 进程监视器,我看到一些缓冲区溢出,但由于我不知道如何使用该程序,我不确定它是否与这个 dll 或什至来自 iis。

如何进一步调试或解决此问题?

更新:

IO 运行 sysinternals 进程监视器,我能够看到我的 asp 页面何时被击中,我得到了缓冲区溢出。发生这种情况后,当调用 Crystal Reports DLL 时,它会显示 FILE LOCKED WITH ONLY READERS

似乎有些东西在文件到达 CR 之前就锁定了文件。访问这些 asp 页面时可能导致缓冲区溢出的原因是什么?

4

0 回答 0