【发布时间】:2013-01-18 11:27:23
【问题描述】:
我正在开发一个 PHP/C# Soap 服务项目,但我在 IIS 中运行它时遇到了问题,尽管它之前还在工作。
当我尝试访问 ASMX 文件或 WSDL 文件时,我收到 IIS 错误:
HTTP 错误 500.0 - 调用 LoadLibraryEx 时发生内部服务器错误 ISAPI 过滤器“C:\php\php5isapi.dll”失败
php5isapi.dll 位于错误中指定的位置,它被添加到 IIS 内的 isapi 过滤器中。我知道 PHP 可以正常工作,因为标准 .php 文件可以正常工作,但我不明白为什么 ASMX/WSDL 文件会访问 php5isapi dll,因为它不是 PHP。 soap 服务位于 C# ASMX Web 服务中。
这只是我在应用程序池中启用 32 位应用程序的原因。这必须是真实的,因为当它不是时它会引发一个 ASP 异常,说明 DLL 的格式不正确。
我知道实际服务运行良好,因为它在 Mono 下的 linux 上运行良好,所以 IIS 有问题,但我看不出是什么。
感谢您提供的任何帮助。
【问题讨论】:
-
您运行的是什么版本的 IIS 以及什么操作系统,请包括您运行的发行版和/或服务包版本。此外,您正在运行哪个版本的 .NET Framework。
-
@LCarter 我正在使用带有 Windows 7 SP 1 x64 的 IIS 7.5。肥皂服务在 .Net 4 上运行
-
您是否在同一个应用程序池下同时运行 .NET 和 PHP 站点?
-
@LCarter 我不认为 php 被放入应用程序池中。但是,如果是我没有更改任何内容,那么 PHP 可能会在默认应用程序池中。肥皂服务位于单独的应用程序池中
-
php5isapi.dll?这是 2013 年。您使用的是哪个版本的 PHP?
标签: c# php asp.net iis-7.5 isapi