Asp.net w3wp.exe-Windows 8 IIS 8 Classic ASP中发生未经处理的win32异常
我有一个用经典ASP制作的网站,我正在尝试从windows xp开发机器迁移到windows 8开发机器,并在生产中从windows Server 2003机器迁移到Server 2012。我们使用Crystal Reports报表应用服务器9生成报表 在windows 8中,我安装了IIS 8,并将.NET 2 classic应用程序池配置为使用32位应用程序,并将标识设置为网络服务。我安装了CR9 RAS和64位运行时。当我在网站上打印报告时,我在创建CR对象的第一行出现以下错误:Asp.net w3wp.exe-Windows 8 IIS 8 Classic ASP中发生未经处理的win32异常,asp.net,winapi,iis,crystal-reports,w3wp,Asp.net,Winapi,Iis,Crystal Reports,W3wp,我有一个用经典ASP制作的网站,我正在尝试从windows xp开发机器迁移到windows 8开发机器,并在生产中从windows Server 2003机器迁移到Server 2012。我们使用Crystal Reports报表应用服务器9生成报表 在windows 8中,我安装了IIS 8,并将.NET 2 classic应用程序池配置为使用32位应用程序,并将标识设置为网络服务。我安装了CR9 RAS和64位运行时。当我在网站上打印报告时,我在创建CR对象的第一行出现以下错误: An u
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 temp文件夹和我的网站文件夹,并从网络服务完全控制它们,而不做任何更改
我尝试卸载crystal reports并点击该页面查看不同的错误,但我仍然遇到相同的崩溃,因此我不确定这是否是实际的安装问题,或者是在如何配置IIS或classic ASP for IIS 8方面更严重的问题
我现在正在尝试sysinternals process monitor,我看到一些缓冲区溢出,但由于我不知道如何使用该程序,我不确定它是否与此DLL一起使用,甚至是来自iis
如何进一步调试或解决此问题
更新:
IO运行了sysinternals进程监视器,我能够看到当我的asp页面被点击时,缓冲区溢出。发生这种情况后,当调用Crystal Reports DLL时,它会显示仅使用读卡器锁定的文件
似乎有什么东西在文件到达CR之前就锁定了文件。在访问这些asp页面时,什么可能导致缓冲区溢出?@Rafael您是否尝试将应用程序池标识更改为其他内容?尝试在提升的用户帐户下运行它-只是为了测试。我确实将它更改为我的本地管理员帐户,这是我第一次安装计算机时创建的帐户,没有任何区别。我还尝试了不同的应用程序池,如.Net 2.0 classic和normal.Net 2.0以及defaultpoolidentity。@bkdc我不是问这个问题的人,我只是重新标记了它。@SolidSnake4444您可以使用WinDbg检查转储;另一个尝试是将应用程序池设置为无托管代码而不是.NET(我怀疑在这种情况下它是否重要)。最后,但可能最重要的是,试试这个-似乎表明您的CR版本对于Win8甚至Win7来说太旧了。一年前,我猜您设法解决了这个问题。我想解决一个类似的问题,但我遇到了一个问题——也许它能帮助其他人解决这个问题。