2014-08-30 45 views
2

我有一个dll文件。我用它在Windows窗体应用程序(C#)没有问题。在ASP.NET网站中使用Dll

现在,我想在我的ASP.NET网站(C#)使用,我将其导入像我的Windows应用程序是这样的:

[DllImport("mydll.dll")] 
static extern int myfunc(int i); 

但是当我运行我的网站,并使用MYFUNC方法就说明此错误:

An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) 

我不知道是什么问题。

一些更多的信息:

这是64位的DLL。我有一个x64 cpu(英特尔酷睿i7)。我没有dll的源代码。我的本地计算机上有一个IIS,我正在测试它。

+0

它在这里找到答案: http://stackoverflow.com/questions/23215518/target-32-bit-or-64-bit-native-dll-depending-on-environment – thirdDeveloper 2014-08-30 06:59:07

回答

1

您可能正在x64上运行,并且您的IIS未设置为允许x86程序集。

在你的应用程序池启用32位DLL,as described here

  1. 右键单击您的应用程序池
  2. 选择高级设置
  3. 变化的“启用32位应用程序”,真值并单击OK
+0

我做了你所说的,但并没有解决问题。 – Rahmani 2014-08-30 07:50:37

+0

给我们一些关于你的设置的更多信息。它是一个32位的DLL吗?你有DLL的源代码,你可以重新编译它的目标x64?它发生在本地还是服务器上?你在x64上吗?什么版本的IIS? – demoncodemonkey 2014-08-30 07:53:02

+1

它是64位的dll。我有一个x64 cpu(英特尔酷睿i7)。我没有dll源文件。我的本地计算机上有一个IIS,我正在测试它。 – Rahmani 2014-08-30 08:04:43