IIS自定义模块在32位环境中工作,但在64位环境中不工作

ctzwtxfj  于 2023-10-19  发布在  其他
关注(0)|答案(2)|浏览(127)

我正在努力为IIS创建一个自定义经典模块,我为32位环境做了它(并且它工作正常),但是在64位重新编译它,当我在IIS中安装它时,在64位工作的AppPool停止工作循环到很多错误:
进入应用程序日志:模块DLL D:\IIS Modules\mydll.dll加载失败。数据就是错误。
进入系统日志:服务于应用程序池“Utilities”的工作进程“9080”中协议“http”的侦听器通道报告侦听器通道失败。数据字段包含错误号。
运行DebugViewer(Sysinternals)时,我会得到以下错误:w3 wphost!WP_IPM::ReportListenerChannel停止[wpipm.cxx@1743]:报告ListenerChannel由于失败而停止; ProtocolId:http,ListenerChannelId:0 iisutil!ReadMultiStringParameterValueFromAnyService [helpfunc. cxx@490]:Inetinfo:无法阅读注册表值错误(80070002):系统找不到指定的文件。
要停止循环,我必须从IIS中删除模块
模块是用C++编写的
Thanks in advance

zy1mlcev

zy1mlcev1#

我发现自己使用Sysinternals进程监视器的解决方案,MSVCP140.DLL为64位环境没有安装。
安装了这个,DLL工作正常
希望这可以帮助别人谢谢

jxct1oxe

jxct1oxe2#

您可以尝试配置IIS以运行32位应用程序,如果您不启用32位,它将始终尝试加载64位。您需要遵循以下步骤:

  • 打开IIS
  • 转到当前服务器->选择应用程序池
  • 单击高级设置
  • 将启用32位应用程序设置为True

相关问题