Vb.net System.TypeInitializationException:';OpcLabs.EasyOpc.DataAccess.EasyDAClient';抛出异常

Vb.net System.TypeInitializationException:';OpcLabs.EasyOpc.DataAccess.EasyDAClient';抛出异常,vb.net,.net-assembly,plc,opc,Vb.net,.net Assembly,Plc,Opc,我在应用程序中使用了OPC Web client 3.02。一般来说,我在系统启动时启动了5到6个应用程序。一切正常,没有任何问题 现在,我正在将我的应用程序升级到Quick OPC Classic 5.12.1308.1 如果在系统启动时启动所有6个应用程序(即所有6个应用程序同时启动),则会出现以下错误 例外文本: System.TypeInitializationException:“opclab.EasyOpc.DataAccess.EasyDAClient”的类型初始值设定项引发异常。

我在应用程序中使用了OPC Web client 3.02。一般来说,我在系统启动时启动了5到6个应用程序。一切正常,没有任何问题

现在,我正在将我的应用程序升级到Quick OPC Classic 5.12.1308.1

如果在系统启动时启动所有6个应用程序(即所有6个应用程序同时启动),则会出现以下错误

例外文本:

System.TypeInitializationException:“opclab.EasyOpc.DataAccess.EasyDAClient”的类型初始值设定项引发异常。-->System.IO.FileLoadException:无法加载文件或程序集的file:///C:\文档和设置[用户]\Local Settings\Temp\x86_opclab.EasyOpcClassicRaw_5.12.1396.1.dll”或其依赖项之一。该进程无法访问该文件,因为另一进程正在使用该文件。

(HRESULT的异常:0x80070020) 文件名:'file:///C:\文档和设置[用户]\Local Settings\Temp\x86_opclab.EasyOpcClassicRaw_5.12.1396.1.dll' 在System.Reflection.Assembly.\n加载(AssemblyName文件名、字符串代码基、证据assemblySecurity、AssemblyLocationHint、StackScrawlMark和stackMark、Boolean throwOnFileNotFound、Boolean for Inspection)

位于System.Reflection.Assembly.nLoad(AssemblyName文件名、字符串代码库、证据assemblySecurity、Assembly locationHint、stackcrawmark和stackMark、Boolean throwOnFileNotFound、Boolean for introspection)

在System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,证据assemblySecurity,StackScrawMark&stackMark,布尔值用于内省)

位于System.Reflection.Assembly.InternalLoadFrom(字符串assemblyFile、证据安全性证据、字节[]哈希值、AssemblyHashAlgorithm哈希算法、Boolean ForInspection、StackScrawMark和stackMark)

位于System.Reflection.Assembly.LoadFrom(字符串汇编文件)

在OpcLabs.BaseLib.AssemblyExtension.LoadFrom处(String assemblyFile,String requestingPath)

在OpcLabs.BaseLib.AssemblyLoader.LoadFromManifestResourceThroughFile(程序集manifestAssembly、字符串resourceName、字符串文件名、程序集请求Assembly)

在OpcLabs.BaseLib.AssemblyLoader.LoadFromManifestResource(Assembly manifestAssembly、AssemblyName AssemblyName、Assembly requestingAssembly)

在OpcLabs.BaseLib.AssemblyLoader.InternalLoad(AssemblyName AssemblyName,Assembly requestingAssembly)处

在OpcLabs.BaseLib.AssemblyLoader.LoadExtended处(AssemblyName AssemblyName,Assembly requestingAssembly)

在opclab.EasyOpc.Assemblies.get_EasyOpcClassicNetRaw()上

在OpcLabs.EasyOpc.DataAccess.EasyDAClient..cctor()中

我已经用最新版本“Quick OPC Classic 5.12.1396.1”和“Quick OPC Classic 5.20.1016.1”测试了这个问题。但我还是犯了同样的错误

注意:如果我单独运行这些应用程序,它工作得很好。当我同时运行两个或多个应用程序时,会出现此错误。此外,此错误并非始终发生

复制步骤:

  • 创建VB.NET应用程序并添加引用EasyOPC.NET库
  • 在表单的代码隐藏处,复制并粘贴以下代码

    末级

  • 以相同的方式创建另一个VB.NET应用程序“optest2”,并遵循相同的过程
  • 4.复制windows server 2008 R2/windows 7/XP上Starup文件夹下OPCTest1和OPCTest2应用程序的快捷方式

  • 重新启动你的机器
  • 注意:错误出现在“m_objOPCServer=New EasyDAClient”行

    Imports OpcLabs.EasyOpc.DataAccess

    Public Class OPCTest1 Public m_objOPCServer As EasyDAClient

    Private Sub OPCTest1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        m_objOPCServer = New EasyDAClient
    End Sub