2023-05-06 00:20:59 阅读( 6227)
症状公司一台数据库服务器上部署了IIS网站(IIS7),利用SqlServerAnalysisServices的msmdpump.dll组件,实现了通过HTTP层来访问AnalysisServices(MSAS不支持HTTP远程访问,非HTTP的远程访问也一直没成功过)。
仔细看了一下网站的配置,好像没什么问题。重新部署网站并重新配置ISAPI处理器映射后,问题仍然出现。
An article (IIS7-Running 32-bit and 64-bit versions of ASP.NET on different work processes) reminded me.
出于性能原因,公司服务器使用64位系统。对应的msmdpump.dll文件也是64位,但是我真的没有考虑过IIS的应用池进程是多少位。乍一看,任务管理器只有一个‘w3wp.exe * 32’。
果然是32位。问题的原因应该是32位的应用程序池无法加载64位的Isapi处理器。
知道了问题,解决方法很简单,启动一个64位的应用程序池就可以了。打开应用程序池的高级设置,找到“启用32位应用程序(BitApponWin 64)”的设置。
将其从True更改为False(默认值为False)。此选项的功能是允许将32位程序加载到64位操作系统上的32位应用程序池中。
之所以突然出现这个问题,是因为IIS的机器配置文件全局ApplicationHost.config的enable32bitAppOnWin64的默认值意外更改为True。
我部署的IIS网站将继承ApplicationHost.config文件中的默认值,因为没有显式设置该选项。
猜你喜欢
Guessyoulike