问题B1_DIInternalFields90.dll w3wp.exe崩溃

2020-08-30 16:35发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我的应用概述:

我已经创建了Web服务(asmx)并在其中集成了DIAPI。 我将介绍"添加业务伙伴"和"更新业务伙伴"方法。 这两种方法将帮助呼叫者应用程序通过我们的服务添加/更新业务伙伴。 还有一件事情:用户将一次发送单个业务伙伴来执行这两项操作中的任何一项。 简而言之,如果用户要添加1000个业务伙伴,则调用者应用程序将调用我们的服务1000次,并且更新方法也是如此。 简而言之,一次一次。

问题:

当用户以10000 BP的价格批量执行此操作以进行添加/更新时,某些时候w3wp进程崩溃;以下是我在事件查看器中遇到的问题详细信息,请查看它。 建议我解决此错误:

故障处理应用程序名称:w3wp.exe,版本:8.5.9600.16384,时间戳:0x52157ba0
 故障模块名称:B1_DIInternalFields90.dll,版本:9.20.150.0,时间戳:0x581712a4
 异常代码:0xc0000005
 故障偏移量:0x00013eb5
 故障进程ID:0xe54
 错误的应用程序开始时间:0x01d2bb2a098e0a4b
 错误的应用程序路径:C:\ Windows \ SysWOW64 \ inetsrv \ w3wp.exe
 错误的模块路径:C:\ Program Files(x86)\ SAP \ SAP Business One DI API \ DI API 90 \ B1_DIInternalFields90.dll
 报告ID:57109d74-2727-11e7-8188-029f6db918f5
 故障包全名:
 与程序包相关的应用程序ID错误:
 

一些关于我的代码的见解:

以前我以为我没有适当地放置对象,所以我仔细检查了两次并且没有任何问题,因此请查看下面的代码,以防万一需要任何更改。

 BusinessPartners objBusinessPartners = null;
 ContactEmployees oBPContactPerson = null;
 SAPbobsCOM.Company oCmpy = null;
 尝试
 {

//为oCmpy连接对象设置一些逻辑
 oCmpy.Connect();


 objBusinessPartners =(SAPbobsCOM.BusinessPartners)oCmpy.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners);
 一些逻辑

 }
 最后
 {
 如果(oCmpy.Connected == true){oCmpy.Disconnect();  System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oCmpy);  oCmpy = null;  }
 如果(objBusinessPartners!= null){System.Runtime.InteropServices.Marshal.FinalReleaseComObject(objBusinessPartners);  objBusinessPartners = null;  }
 如果(oBPContactPerson!= null)
 {
 System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oBPContactPerson);  oBPContactPerson = null;  }
 

伙计们,我认为我可以详细解释,但是如果有任何其他信息,请告知我,并等待您的反馈。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我的应用概述:

我已经创建了Web服务(asmx)并在其中集成了DIAPI。 我将介绍"添加业务伙伴"和"更新业务伙伴"方法。 这两种方法将帮助呼叫者应用程序通过我们的服务添加/更新业务伙伴。 还有一件事情:用户将一次发送单个业务伙伴来执行这两项操作中的任何一项。 简而言之,如果用户要添加1000个业务伙伴,则调用者应用程序将调用我们的服务1000次,并且更新方法也是如此。 简而言之,一次一次。

问题:

当用户以10000 BP的价格批量执行此操作以进行添加/更新时,某些时候w3wp进程崩溃;以下是我在事件查看器中遇到的问题详细信息,请查看它。 建议我解决此错误:

故障处理应用程序名称:w3wp.exe,版本:8.5.9600.16384,时间戳:0x52157ba0
 故障模块名称:B1_DIInternalFields90.dll,版本:9.20.150.0,时间戳:0x581712a4
 异常代码:0xc0000005
 故障偏移量:0x00013eb5
 故障进程ID:0xe54
 错误的应用程序开始时间:0x01d2bb2a098e0a4b
 错误的应用程序路径:C:\ Windows \ SysWOW64 \ inetsrv \ w3wp.exe
 错误的模块路径:C:\ Program Files(x86)\ SAP \ SAP Business One DI API \ DI API 90 \ B1_DIInternalFields90.dll
 报告ID:57109d74-2727-11e7-8188-029f6db918f5
 故障包全名:
 与程序包相关的应用程序ID错误:
 

一些关于我的代码的见解:

以前我以为我没有适当地放置对象,所以我仔细检查了两次并且没有任何问题,因此请查看下面的代码,以防万一需要任何更改。

 BusinessPartners objBusinessPartners = null;
 ContactEmployees oBPContactPerson = null;
 SAPbobsCOM.Company oCmpy = null;
 尝试
 {

//为oCmpy连接对象设置一些逻辑
 oCmpy.Connect();


 objBusinessPartners =(SAPbobsCOM.BusinessPartners)oCmpy.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners);
 一些逻辑

 }
 最后
 {
 如果(oCmpy.Connected == true){oCmpy.Disconnect();  System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oCmpy);  oCmpy = null;  }
 如果(objBusinessPartners!= null){System.Runtime.InteropServices.Marshal.FinalReleaseComObject(objBusinessPartners);  objBusinessPartners = null;  }
 如果(oBPContactPerson!= null)
 {
 System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oBPContactPerson);  oBPContactPerson = null;  }
 

伙计们,我认为我可以详细解释,但是如果有任何其他信息,请告知我,并等待您的反馈。

付费偷看设置
发送
6条回答
落灬小鱼
1楼 · 2020-08-30 17:00.采纳回答

所有人

我在这个问题上苦苦挣扎了很长时间,我尝试了很多修复工作,但是似乎没有任何效果,所以我和我的伴侣普拉文先生一起坐了最后一次,这次我们设法解决了 这个问题。

修复:由于每次w3wp.exe都崩溃,我每次都在Add&Update方法中打开和关闭连接,因此请仅打开该连接1次,这是我在Global.asax文件中处理过的。 如果有人在寻找代码请PM,我将很乐意为任何人提供帮助。

关于此错误:错误的模块名:B1_DIInternalFields90.dll,我偶然发现此问题的可能性相当大,如下所示:

  1. 传递NULL而不是空白。
  2. 在下拉列表中具有主值的地方传递'',但在列表中没有添加"作为选项。

因此,请告诉我,将很乐意帮助遇到此问题的任何人。

大道至简
2楼-- · 2020-08-30 16:53

Rahul,您好,

我遇到此错误,模块名称错误:SAPbobsCOM90.dll。
请参考此消息,并想知道您是否能够提供帮助。 https://answers.sap.com/questions/12901452/error-500-when-insert-into-user-defined-field-by-p.html 。 谢谢

大简至美
3楼-- · 2020-08-30 16:55

嗨Rahul,

查看此链接: https: //www.appseconnect.com/di-api-memory-leak-in-sap-business-one-9-0 /可能会对您有所帮助。

亲切的问候,

Diego Lother

clasier
4楼-- · 2020-08-30 16:50

嗨Rahul,

GC.Collect()方法将回收与死对象相关的内存。

不幸的是,我不知道您提到的错误。 :|

亲切问候,

迭戈·拉瑟

悻福寶寶
5楼-- · 2020-08-30 17:13

您好,希望对您有所帮助。

在我的服务中,我遇到了同样的问题。

我通过保持连接活动状态解决了它。 我通过保持连接处于活动状态来解决它,也就是从不释放或断开对象" Company"。

致谢。

愤怒的猪头君
6楼-- · 2020-08-30 17:07

能否请您分享您的完成情况? 我试图异步插入到SAP B1中,但是有时会在上述事件日志中获取消息。

一周热门 更多>