我有一个用ASP.NET编写的应用程序,它使用DllImport来引用一个dll 用Delphi编写。在我的Windows 7开发机上使用asp.net开发服务器访问ddl按预期工作。
但是,在运行IIS 7的Windows Server 2008 Production Server上,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.
如何解决这个问题或如何找到更深层的原因?
答案 0 :(得分:3)
只是预感,但你可以试试enabling 32bit worker process。它更兼容64bit并且可能有所帮助。你的本地服务器是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
可以解决问题。值得一试。