Windows XP 開発マシンから Windows 8 開発マシンに移行しようとしている従来の ASP で作成された Web サイトがあり、Windows Server 2003 マシンから Server 2012 に本番環境で移行しようとしています。Crystal Reports Report Application Server 9 を使用して生成します報告します。
Windows 8 では、IIS 8 をインストールし、32 ビット アプリケーションを使用するように .NET 2 クラシック アプリケーション プールを構成し、ID を Network Service に設定しました。CR9 RAS と 64 ビット ランタイムをインストールしました。Web サイトでレポートを印刷しようとすると、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一時フォルダー、および私のWebサイトフォルダーに移動し、変更なしでネットワークサービスからすべてを完全に制御できるようにしました.
Crystal Reports をアンインストールし、そのページにアクセスして別のエラーを表示しようとしましたが、それでも同じクラッシュが発生したため、実際のインストールの問題なのか、IIS または IIS 用の従来の ASP の構成方法に関してより深刻な問題なのかわかりません。 8.
現在sysinternalsプロセスモニターを試していますが、バッファオーバーフローが見られますが、プログラムの使用方法がわからないため、このdllによるものなのか、iisによるものなのかわかりません。
この問題をさらにデバッグまたは解決するにはどうすればよいですか?
アップデート:
IO は sysinternals プロセス モニターを実行し、ASP ページがヒットしたときにバッファー オーバーフローが発生することを確認できました。これが発生した後、Crystal Reports DLL が呼び出されると、FILE LOCKED WITH ONLY READERSと表示されます。
CRに到達する前に、何かがファイルをロックしているようです。これらの ASP ページにアクセスすると、何がバッファ オーバーフローを引き起こす可能性がありますか?