编程语言
首页 > 编程语言> > c#-在ISAPI筛选器上调用LoadLibraryEx失败

c#-在ISAPI筛选器上调用LoadLibraryEx失败

作者:互联网

我正在开发一个PHP / C#Soap Service项目,但是在IIS中运行它时遇到了问题.

当我尝试转到ASMX文件或WSDL文件时,出现IIS错误:

HTTP Error 500.0 – Internal Server Error Calling LoadLibraryEx on
ISAPI filter “C:\php\php5isapi.dll” failed

php5isapi.dll位于错误中指定的位置,并将其添加到IIS中的isapi筛选器中.我知道PHP可以正常工作,因为标准.php文件可以正常工作,但是我不明白为什么ASMX / WSDL文件将访问php5isapi dll,因为它不是PHP. soap服务位于C#ASMX Web服务中.

这仅在我在应用程序池中启用32位应用程序的情况下发生.这需要是正确的,因为当它没有抛出ASP异常时指出DLL的格式不正确.

我知道实际的服务可以正常运行,因为它可以在Mono下的Linux上正常运行,因此IIS出了点问题,但是我看不到.

感谢您的任何帮助,您可以提供.

解决方法:

这看起来是一样的问题,不是吗? https://bugs.php.net/bug.php?id=39163

那里的“ Gmail点com上的FreakTrap”建议以下解决方案:

sneakers05’s modification of the Application Pool’s 32-bit setting
also corrected the problem I was having with the php5isapi.dll.

For those of us getting the ‘Calling LoadLibraryEx on ISAPI filter
“C:\PHP\php5isapi.dll” failed’ error after an attempted manual
install:

1)从全新安装IIS开始,同时安装ISAPI筛选器和
扩展程序已启用.

2)在主要设置下[位于
您的IIS管理器的层次结构视图,在“应用程序池”上方,添加
按照以下顺序:

> php5isapi.dll的ISAPI筛选器
> php5isapi.dll的ISAPI和CGI限制条目
> php5isapi.dll的处理程序映射

3)转到应用程序池部分.

4)右键单击默认应用程序池,然后选择高级设置.

5)将第二个选项[Enable 32-Bit …]设置为True.

Also, it is important that your ‘Default Website’ not have any unique settings from the top-level configurations. This was causing
my ISS to exhibit some pretty strange behavior, which is why I
recommend that you first delete your default website and create a new
one.

我只是建议一个链接而感到难过,但是看到活动很少,因此认为这可能会有所帮助.

标签:iis-7-5,isapi,asp-net,c,php
来源: https://codeday.me/bug/20191031/1974715.html