我有一个用经典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 8的ASP。
我正在尝试sysinternals进程监视器,我看到一些缓冲区溢出但由于我不知道如何使用该程序,我不确定它是否与这个dll甚至是iis。
如何进一步调试或解决此问题?
更新
IO运行sysinternals进程监视器,我能够看到我的asp页面何时被点击,我得到缓冲区溢出。发生这种情况后,当调用Crystal Reports DLL时,它会显示 FILE已锁定只有读者
似乎某种东西在文件进入CR之前锁定了文件。访问这些asp页面时可能导致缓冲区溢出的原因是什么?