这次项目需要,做了一个C#写的WebService服务给外部调用,服务内部引用了算法库,本地调试已经通过,现场部署服务时各种提示找不到DLL文件。

第一、如果是包含有32位库在64位服务器系统上运行,会有一个运行时错误,64位的IIS默认“应用程序池”不启用32位支持,需要去“高级设置”里启用32位支持

第二、找不到Dll处理方法:

网上查到的Dllimport路径相关:

DllImport会按照顺序自动去寻找的地方:
1、exe所在目录
2、System32目录
3、环境变量目录

三种都试过没用,依然提示找不到DLL,无法加载,用depends软件查了该库文件,依赖项都有,百思不得其解。

 

最后逼的没办法,把depends发给现场让他们看那个算法DLL的依赖项,最后发现是现场服务器中缺少msvcr100.dll跟msvcp100.dll,本地开发环境有这些。希望跟我遇到一样问题的人能够早点发现。

 

如果调试环境没有问题,必然是实际应用与调试环境有区别,服务运行不了不一定是代码相关。

 

相关文章:

  • 2022-12-23
  • 2021-05-08
  • 2022-01-11
  • 2022-12-23
  • 2021-11-29
  • 2021-11-29
  • 2022-12-23
猜你喜欢
  • 2022-03-04
  • 2021-10-02
  • 2021-12-03
  • 2023-01-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案