Apparently random crashes with VB.NET and COM Interop

I am thinking of rewriting a brand new VB.NET application in VB 6.

The application runs under terminal services and actively uses COM.

For some reason there is a random oddity with the application -

  • Errors with random access to random access (examples of analyzing WinDbg exceptions in dll, such as comdlg32.dll, mscorwks)
  • Random buffer overflow errors (same)
  • General random errors - for example, this line in Form.Load sometimes causes - Me.Icon = Resources.MyIcon

I followed all possible advice regarding resources, garbage collection, deletion patterns, etc. It just doesn't do any good.

I think there are problems with the equipment. This runs on a Win2k3 virtual machine in terminal services. The base server OS is Win2k3 with 64 GB of RAM. There are many virtual machines on the server, each of which runs its own "stuff" (Exchange, etc.).

Either hardware problems or the .NET environment is not as easy to program as you might think.

If the hardware was somehow confirmed (a completely different story), and the application continued to behave as such, would it be a possible route (to rewrite closer to the metal)?

I am not a big fan of virtual machines and doubt their integrity. (Especially on huge servers.)

. . .NET.DLL , x86. COM- 32 , - 64 , .NET 32 . ( , VB6 . , .)

+3
3

, ? TS ? , VM. TS , , . /DR TS.

COM-? , COM-. COM- ...

, TS ( VM, ). COM- , , - BAM. , , COM- ( , Corel Word, COM- ), - . , , - . , () . . , . , , .., , / .

VB6, . , , , . Citrix, , Citrix . , Citrix Microsoft .

0

, ? ?

Currently, the number of suspects is simply too high. You can get some pointers in different directions and hope that you accidentally find a problem. If you narrow it down, someone can really help you.

Rewriting it to VB6 would be a terrible waste if it still doesn't work ...

0
source

Source: https://habr.com/ru/post/1702948/


All Articles