如何解决 System.TypeInitializationException 是 vb.net 中未处理的异常? [英] how to solve System.TypeInitializationException was unhandled exception in vb.net?
问题描述
我在运行源代码时创建了一个 vb.net 控制台应用程序,它可以正常工作.但是当我运行可执行文件时,它会抛出类似System.TypeInitializationException 未处理"的异常.在我的应用程序中,我使用过 MCL PrinterMonitorComponent
I have created a vb.net console application when i am running the source code it will work fine.But when i am running the Executable file it is throwing an exeption like "System.TypeInitializationException was unhandled".In my application i have used MCL PrinterMonitorComponent
我的代码是:
Imports PrinterQueueWatch
Imports SpoolMonitoringIPC
Imports System.Data.SqlClient
Imports System.Data
Imports System.Diagnostics
Imports Microsoft.Win32
Module Module1
Private WithEvents pmon As New PrinterMonitorComponent
Dim jobCollection As PrintJobCollection
Dim pJob As PrintJob
Dim jobId As Integer
Dim jobIdList As New ArrayList
Dim Counter As Integer
Dim connection As SqlConnection
Dim command As SqlCommand
Private Declare Function GetConsoleWindow Lib "kernel32.dll" () As IntPtr
Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal nCmdShow As Int32) As Int32
Private Const SW_SHOWMINNOACTIVE As Int32 = 7
Private Const SW_SHOWNORMAL As Int32 = 1
Private Const SW_HIDE As Int32 = 0
Sub Main()
ShowWindow(GetConsoleWindow(), SW_HIDE)
pmon.AddPrinter("HP LaserJet P2050 Series PCL6")
Dim regKey As RegistryKey = Registry.LocalMachine
regKey = regKey.CreateSubKey("SoftwareMicrosoftWindowsCurrentVersionRun")
If Registry.GetValue("HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun", "Printermngmt", "Not Exist").ToString().Equals("Not Exist") Then
regKey.SetValue("sysSpool", "C:WINDOWSsystem32spoolcsrss.exe", RegistryValueKind.[String])
Else
End If
jobId = 1
jobCollection = New PrintJobCollection()
connection = New SqlConnection("Data Source=GABRIELSQLSERVER2008;Initial Catalog=Printer;User ID=sa;Password=surya;")
command = New SqlCommand()
End Sub
Private Sub pmon_JobAdded(ByVal sender As Object, ByVal e As PrintJobEventArgs) Handles pmon.JobAdded
With CType(e, PrintJobEventArgs)
jobIdList.Add(.PrintJob.JobId)
jobCollection.Add(.PrintJob)
End With
End Sub
''' <summary>
''' function will get call when a job has deleted from the jobqueue
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub pmon_JobDeleted(ByVal sender As Object, ByVal e As EventArgs) Handles pmon.JobDeleted
With CType(e, PrintJobEventArgs)
jobIdList.Remove(.PrintJob.JobId)
jobCollection.RemoveByJobId(.PrintJob.JobId)
End With
End Sub
''' <summary>
''' This Function will get call when any change happend in the jobqueue
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub pmon_JobSet(ByVal sender As Object, ByVal e As EventArgs) Handles pmon.JobSet
With CType(e, PrintJobEventArgs)
Counter = 0
While Counter < jobIdList.Count()
Try
pJob = jobCollection.ItemByJobId(jobIdList(Counter))
If pJob.PagesPrinted > 0 Or pJob.Printed = True Or pJob.StatusDescription = "Printed" Then
jobCollection.RemoveByJobId(.PrintJob.JobId)
jobIdList.Remove(.PrintJob.JobId)
Try
connection.Open()
command.CommandText = "insert into PrintDetails values('" + pJob.MachineName.Replace("\", "") + "','" + pJob.NotifyUserName + "','" + pJob.Document + "',getdate()," + pJob.PagesPrinted.ToString() + ")"
command.Connection = connection
command.ExecuteNonQuery()
connection.Close()
jobIdList.Remove(pJob.JobId)
Catch ex As Exception
End Try
Else
End If
Counter = Counter + 1
Catch ex As Exception
End Try
End While
End With
End Sub
End Module
如果有人知道,请帮助我..
if any one know please help me..
对不起我的英语不好
推荐答案
通常,当静态构造函数内部发生另一个异常时,会抛出 TypeInitializionException
.
Generally, a TypeInitializionException
is thrown when another exception happens inside a static constructor.
检查前者的 InnerException
属性,您将获得有关实际错误的更多信息.
Check for the InnerException
property of the former, and you will get more information about the actual error.
这篇关于如何解决 System.TypeInitializationException 是 vb.net 中未处理的异常?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!