IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 记一次部署问题,C#调用C++ dll,在VS2019正常,在服务器报错,分析及解决方案 -> 正文阅读

[C++知识库]记一次部署问题,C#调用C++ dll,在VS2019正常,在服务器报错,分析及解决方案

起因

有一个内网项目,生产线上的上位机软件需要做一个检验功能,为了安全,将业务逻辑做成API,上位机软件调用。

在其中就包含了一个功能,需要调用C++写的dll,为了安全才写的C++?dll。

问题

在调试过程中,一切正常,项目完成后,部署到服务器就报错,异常为SEHExcepion,外部组件发生异常

处理

做了很多的尝试...

尝试一?修改项目为x86

一开始以为是32位或64位程序的问题,由于C++ dll是32位,所以api项目就改成了x86的,部署后还是报错

尝试二?修改C++编译方式

有可能是C++?dll的问题,改了很多编译方式,32位,64位,改了运行库,MT,MD等等,编译了很多个版本的dll,都无法解决问题

尝试三?安装常用运行库

有可能是服务器缺失了C++的运行库,就像部署netcore项目或者blazor项目一样,都需要安装很多的运行库

在搜索问题过程中找到了一个Depends.exe软件,可以查找C++?dll缺失的dll

原本缺失了一个VCRUNTIME140.DLL,于是?下载了一个vcruntime140_1.dll放在C盘,检测过程没有缺失dll,但是其它依赖的dll也缺失了很多,我尝试着去下载两个dll,似乎能解决问题。

?但是,缺失的dll太多了,几十个不可能一个个去下载,可能有一些合集之类的,安装一个之后,就全部全了。

于是下载C++的常用库

?安装了之后,也没有效果。

同时,发现在本地运行Depends.exe软件时,也同样发现dll缺失了很多的dll,与在服务器的一样。

?尝试四?写入log

由于C#无法捕获C++抛出的异常,所以,想到一个方法,那就是在C++?dll?写log,当出现异常时,将异常写入日志。

再次部署到服务器,意料之中,还是报错,也没有写入log,之前就考虑到,可能缺失C++库文件,导致无法调用C++,日志方法也无法调用。

尝试五?服务器问题

在本地电脑也部署过,没有出现问题,所以怀疑是服务器的问题,是否服务器太老了?

查看服务器的系统,是Windows Server 2008 R2的系统,这个系统仅支持64位的操作系统,可能是C++需要调用32位的运行库,才导致出错。

也考虑过重装服务器系统,但这不太可能,代价太大了

解决方案

由于是局域网项目,公司有多个服务器,不同的系统,于是重新找了个服务器,Win7系统的。

再将C#调用C++?dll的逻辑移到一个新API项目,然后将API部署到新服务器。

部署之后,一起正常。

对这个问题有不同想法的,可以留言交流。。。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 10:40:43  更:2021-09-10 10:41:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:56:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码