Iis 在同一应用程序池中的64位应用程序中使用32位dll

Iis 在同一应用程序池中的64位应用程序中使用32位dll,iis,32bit-64bit,application-pool,Iis,32bit 64bit,Application Pool,我有一个64位的应用程序在IIS下运行。它使用64位DSN连接到SQL server,但是我想使用32位dll作为外部库 当我在应用程序池设置中启用32位应用程序时,我得到DSN的架构不匹配错误,如果我禁用它,dll将不再与错误一起工作,ActiveX组件无法创建对象 如何在64位应用程序池中使用此32位dll?我有一个模拟设置;使用32位dll的64位web应用程序。我看到的唯一区别是,我没有使用DSN连接到我的SQL server,而是使用如下所示的connectionstring data

我有一个64位的应用程序在IIS下运行。它使用64位DSN连接到SQL server,但是我想使用32位dll作为外部库

当我在应用程序池设置中启用32位应用程序时,我得到DSN的
架构不匹配
错误,如果我禁用它,dll将不再与错误
一起工作,ActiveX组件无法创建对象


如何在64位应用程序池中使用此32位dll?

我有一个模拟设置;使用32位dll的64位web应用程序。我看到的唯一区别是,我没有使用DSN连接到我的SQL server,而是使用如下所示的connectionstring

data source=YOURSERVER;initial catalog=YOURDATABASE;Persist Security Info=False;integrated security=True;MultipleActiveResultSets=True"
你能改变你的连接字符串吗

编辑:


如果必须使用DSN,请通过位于%windir%\SysWoW64\odbcad32.exe的32位ODBC管理员检查是否存在32位版本的DSN。

不能在同一进程中运行32位和64位DLL(在本例中为IIS工作进程)。我建议您将较简单的一个封装在web服务中,并从另一个web服务调用该web服务。您在其上启用了32位应用程序吗?是的,与您解释的方式相同。如果启用了32位,则这不是64位web应用程序。您只能运行一个或另一个。@Nick.McDermaid您是对的,我说它是64位windows机器上的web应用程序更正确。