2011-09-02 17 views
8

私は、Delphiで書かれたdllを参照するためにDllImportを使用するASP.NETで書かれたアプリケーションを持っています。 ddlにアクセスするasp.net開発サーバーを使用している私のWindows 7の開発マシンでは、期待通りに動作します。フォールティングアプリケーションw3wp.exe

ただしのWindows Server IIS 7を実行している2008プロダクションサーバ上でエラーを返すDLL「ページが見つかりません」と次のエラーがアプリケーションログにポップ:

これを解決する方法
Faulting application w3wp.exe, version 7.0.6002.18005, time stamp 0x49e023cf, faulting 
module ntdll.dll, version 6.0.6002.18005, time stamp 0x49e03821, exception code 
0xc0000374, fault offset 0x000afaf8, process id 0xab8, application start time 
0x01cc6947b1bb081b. 

またはどのようにすることができます私は深い原因を見つける?

+1

開発環境では、開発サーバーを使用するのではなく、ローカルIISでアプリケーションを実行しようとしましたか?開発Webサーバーは資格情報のもとで実行されるため、アプリケーションのアクセス許可はIISで実行するときに異なるため注意してください。 IISでローカルで実行している場合にもエラーが発生するかどうかを確認してください。 – Icarus

+0

IIS上でlocalyアプリケーションを実行すると、エラーも発生します。 – Sebastiaan

+0

あなたは進歩しています...あなたのローカルボックスのIISも問題を引き起こしているので、何らかの権限や信頼レベルの問題と関係しています。 – Icarus

答えて

3

ちょうど勘違いですが、あなたはenabling 32bit worker processを試すことができます。これは、64ビットと互換性があり、役立つかもしれません。あなたのローカルサーバーは32ビットですか?

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.enable32BitAppOnWin64:true 

これは、問題のデバッグに役立つ可能性があります。

Troubleshooting IIS7 Worker Thread Crashes (w3wp.exe) with a Faulting Module of ntdll.dll

同じ問題で、ここのスレッドもあります。彼らはkernel32.dllへの参照を追加することで問題が解決されたことを示唆しています。

Calling unmanaged code from ASP.NET in IIS7

更新

一部の人々はWindows\System32\Inetsrvにあなたの依存関係をコピーしても問題が解決されることを報告しています。それは試みに値します。

+0

私は32ビットワーカーのproccesを有効にしましたが、成功しませんでした。私のウィンドウズ7は64ビットです – Sebastiaan

+1

「例外コード0xc0000374」はヒープ破壊を意味します。 – TheCodeKing

+1

これについてもう少し読んでみると、多くの人がIIS7でアンマネージコードを呼び出すのに問題があるようです。 – TheCodeKing

関連する問題