【问题标题】:.Net webservice could not find my DLL-file.Net webservice 找不到我的 DLL 文件
【发布时间】:2013-04-11 10:49:53
【问题描述】:

我有一个.NET c# 网络服务。 在这个 Web 服务的实现中,我调用了我的 .dll 库的一个函数,它 我正在通过以下方式加载:

[DllImport("myLibrary.dll")]
extern static myMethod();

我必须将我的 DLL 放在哪里?如果我在我的测试项目(不是一个 Web 服务项目)中使用这个 DLL,它就可以工作。

否则我会出错,因为它找不到 dll。

错误:

System.DllNotFoundException was unhandled by user code
  Message=Unable to load DLL 'myLibrary.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

【问题讨论】:

  • 您是否尝试将其复制到您部署 Web 服务的 bin 目录中? (为了不要忘记它,您甚至可以将它添加到您的项目中,在文件属性的“复制到输出目录”中选择“如果较新则复制”。嗯......我不喜欢这个,但把它当作一个选项)。
  • 是的,我已经尝试将dll复制到目录中
  • 我复制到了myproject的所有子目录下但是不行。。我这样解决了:我放了路径:C:\myLibrary.dll..但是..为什么?

标签: c# .net web-services visual-studio dllimport


【解决方案1】:

该程序集需要与使用它的程序集位于同一目录中。因此,如果 Web 服务部署到 IIS 并且它的程序集驻留在 bin 中,那么 myLibrary.dll 也需要在那里。

【讨论】:

  • @GgSalent,这是一个非托管程序集(例如旧的 C++ 程序集)吗?
  • 我没看懂.. :(我的dll语言是c++
【解决方案2】:

您是否在您的服务器上安装了“Visual C++ Redistributable für Visual Studio”? 如果不是这样,这可能是问题所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2011-03-21
    • 2018-01-21
    相关资源
    最近更新 更多