点击此处---> 群内免费提供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; }
伙计们,我认为我可以详细解释,但是如果有任何其他信息,请告知我,并等待您的反馈。
所有人
我在这个问题上苦苦挣扎了很长时间,我尝试了很多修复工作,但是似乎没有任何效果,所以我和我的伴侣普拉文先生一起坐了最后一次,这次我们设法解决了 这个问题。
修复:由于每次w3wp.exe都崩溃,我每次都在Add&Update方法中打开和关闭连接,因此请仅打开该连接1次,这是我在Global.asax文件中处理过的。 如果有人在寻找代码请PM,我将很乐意为任何人提供帮助。
关于此错误:错误的模块名:B1_DIInternalFields90.dll,我偶然发现此问题的可能性相当大,如下所示:
因此,请告诉我,将很乐意帮助遇到此问题的任何人。
Rahul,您好,
我遇到此错误,模块名称错误:SAPbobsCOM90.dll。
请参考此消息,并想知道您是否能够提供帮助。 https://answers.sap.com/questions/12901452/error-500-when-insert-into-user-defined-field-by-p.html 。 谢谢
嗨Rahul,
查看此链接: https: //www.appseconnect.com/di-api-memory-leak-in-sap-business-one-9-0 /可能会对您有所帮助。
亲切的问候,
Diego Lother
嗨Rahul,
GC.Collect()方法将回收与死对象相关的内存。
不幸的是,我不知道您提到的错误。 :|
亲切问候,
迭戈·拉瑟
您好,希望对您有所帮助。
在我的服务中,我遇到了同样的问题。
我通过保持连接活动状态解决了它。 我通过保持连接处于活动状态来解决它,也就是从不释放或断开对象" Company"。
致谢。
能否请您分享您的完成情况? 我试图异步插入到SAP B1中,但是有时会在上述事件日志中获取消息。
一周热门 更多>