aspnet应用程序无法在windows10 / iis10

时间:2016-02-25 23:07:53

标签: c# asp.net delphi iis dll

我有一对aspnet C#应用程序调用非托管dll(用Delphi编写)。应用程序安装在IIS上。当两个应用程序中的任何一个尝试调用非托管dll时,报告以下错误(在两种情况下都出现相同的错误):

“无法加载DLL'ldName.dll':动态链接库(DLL)初始化例程失败。(HRESULT异常:0x8007045A)”

以下是有关应用程序的一些详细信息:

  • 只是要清楚:Web应用程序是完全独立的:每个都在iis服务器上单独安装,每个都有自己的非托管dll副本。
  • 使用microsoft web安装项目在iis上安装应用程序。
  • VS版本:VS2015
  • 仅在Windows 10 / iis 10
  • 时出现错误
  • 使用dotnet v4.0用C#编写的aspnet应用程序
  • 一个应用程序是用aspnet webforms框架编写的,另一个是用aspnet MVC4框架编写的。
  • 应用程序已使用'any cpu'选项编译
  • 非托管dll是使用32位Delphi编译器编译的
  • 这些应用程序在其他Windows版本上正常运行(经过验证的ws2008,ws2012,win7,win8,ws2003,winvista)
  • 两个应用程序在调用非托管DLL时都会抛出相同的错误。
  • 用于运行应用程序的应用程序池启用了“启用32位应用程序”选项(这是必需的,因为使用32位编译器编译的非托管dll)
  • 已经尝试在Visual Studio中使用'x86'选项编译应用程序。仍然有错误。

有关如何调试此问题或可能的解决方案的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

在IIS中运行32位delphi DLL的前提条件是:

启用32Bits应用程序在站点AppPOOL中,如下面的波纹图所示。 enter image description here

您的c#项目需要编译为x86 Plataform

最后解决我问题的方法是将borlndmm.dll与所有其他C#项目DLL一起复制到应用程序bin目录中