服务失败,没有抛出异常

如何解决服务失败,没有抛出异常

我对在 VS C# 环境中进行开发有些陌生,并且遇到了以下问题。我开发了一个 C# 服务 (BrassSS),它连接到 MS Access 数据库并自 2018 年 2 月开始运行。该服务旨在在凌晨 4:00 执行夜间备份,在早上 7 点发送提醒电子邮件,并在 10 点发送状态电子邮件、2 和 6 天。多年来,这一切都运行良好,直到大约一周前,一位客户打电话给我,说提醒电子邮件不起作用。 BrassSS 保存了一个日志,我检查了该日志并注意到当我尝试在早上 7:00 打开数据库发送提醒电子邮件时,该服务现在仅在几毫秒后就停止了。这从来没有发生过,所以我一直试图用我有限的知识在互联网上搜索并为此苦苦挣扎。请注意,我有一个作为控制台应用程序 (BrassConsoleApp) 运行的服务的“镜像”图像,它也在同一位置失败。我终于进入了事件查看器(下面显示了两个日志条目),似乎发生了未处理的异常。

我不知道这是否有帮助,而且可能只会增加混乱,但在上个月我已将 MS Access 从 2007 年切换到 2016 年。话虽如此,请注意在凌晨 4:00,当备份开始时在,您在下面看到的打开数据库的完全相同的代码,运行没有问题。

所以在早上 7:00,计时器结束,我需要打开数据库,这是我的代码

class DBif
{
    const string cstClassName = "DBif";

    private OleDbConnection conDB;
    private string strPathToBEFile;

    public bool openDB(string strFullPathToDB) {
        // Connects to the DB 
        this.strPathToBEFile = strFullPathToDB;
        try {
            if (this.conDB != null) {
                this.conDB.Close();
            }
            Logs.addEvent("Info",cstClassName,"openDB","Attempt to Open DB: " + strPathToBEFile);  //debug

            string connectionString = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=" + strPathToBEFile + ";Jet OLEDB:Database Password=" + "----------" + ";";
            Logs.addEvent("Info","Connection string: " + strPathToBEFile);  //debug

            this.conDB = new OleDbConnection(connectionString);
            Logs.addEvent("Info","conDB successfull " + strPathToBEFile);  //debug

            this.conDB.open(); ***<---- I place a breakpoint here,step over it,and the app FAILS WITH NO EXCEPTION***
            Logs.addEvent("Info","DB Opened successfully: " + strPathToBEFile);  //debug

            return true;
        } catch (Exception ex) {
            Logs.addEvent("CRITICAL","openConnection","Error trying to Open database: " + ex.Message);
            return false;
        }
    }

..... }

我希望一些专家能够对此有所了解并帮助我找到根本原因。

这是当应用程序失败时显示错误的事件查看器日志条目;

Log Name:      Application
Source:        Application Error
Date:          2021-Jun-10 4:30:01 PM
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      Dell5759
Description:
Faulting application name: BrassConsoleApp.exe,version: 1.0.0.0,time stamp: 0x60c2722d
Faulting module name: mso20win32client.dll,version: 0.0.0.0,time stamp: 0x60a155a8
Exception code: 0xc000041d
Fault offset: 0x001d3a12
Faulting process id: 0x49a8
Faulting application start time: 0x01d75e34f0fb2b15
Faulting application path: D:\BitCrafters\Dev\Brass\Next\BrassConsoleApp\bin\Debug\BrassConsoleApp.exe
Faulting module path: C:\Program Files (x86)\Common Files\Microsoft Shared\Office16\mso20win32client.dll
Report Id: b2318536-61c1-4958-85c0-a6803c4bbd3b
Faulting package full name: 
Faulting package-relative application ID: 
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>100</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2021-06-10T20:30:01.9117979Z" />
    <EventRecordID>200410</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>Dell5759</Computer>
    <Security />
  </System>
  <EventData>
    <Data>BrassConsoleApp.exe</Data>
    <Data>1.0.0.0</Data>
    <Data>60c2722d</Data>
    <Data>mso20win32client.dll</Data>
    <Data>0.0.0.0</Data>
    <Data>60a155a8</Data>
    <Data>c000041d</Data>
    <Data>001d3a12</Data>
    <Data>49a8</Data>
    <Data>01d75e34f0fb2b15</Data>
    <Data>D:\BitCrafters\Dev\Brass\Next\BrassConsoleApp\bin\Debug\BrassConsoleApp.exe</Data>
    <Data>C:\Program Files (x86)\Common Files\Microsoft Shared\Office16\mso20win32client.dll</Data>
    <Data>b2318536-61c1-4958-85c0-a6803c4bbd3b</Data>
    <Data>
    </Data>
    <Data>
    </Data>
  </EventData>
</Event>

在上一个之后的第二个事件查看器信息日志条目 ------------------------------------ ---------------

Log Name:      Application
Source:        Windows Error Reporting
Date:          2021-Jun-10 4:30:04 PM
Event ID:      1001
Task Category: None
Level:         information
Keywords:      Classic
User:          N/A
Computer:      Dell5759
Description:
Fault bucket 1496835596276001519,type 1
Event Name: APPCRASH
Response: Not available
Cab Id: 0

Problem signature:
P1: BrassConsoleApp.exe
P2: 1.0.0.0
P3: 60c2722d
P4: mso20win32client.dll
P5: 0.0.0.0
P6: 60a155a8
P7: c000041d
P8: 001d3a12
P9: 
P10: 

Attached files:
\\?\C:\TMP\{348A1C8B-8F9A-4947-A735-1A6662FAB73B} - OProcSessId.dat
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBA96.tmp.dmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBD95.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBDC5.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBDD3.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBE22.tmp.txt

These files may be available here:
\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_BrassConsoleApp._a65121a9886cf85d89cc2caea488de84ebbc6379_15a45da1_128d96b7-c591-43c7-8393-71b1b078c790

Analysis symbol: 
Rechecking for solution: 0
Report Id: b2318536-61c1-4958-85c0-a6803c4bbd3b
Report Status: 268435456
Hashed bucket: e03e080836cae1e184c5d40b5330eaef
Cab Guid: 0
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Windows Error Reporting" />
    <EventID Qualifiers="0">1001</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2021-06-10T20:30:04.9119743Z" />
    <EventRecordID>200411</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>Dell5759</Computer>
    <Security />
  </System>
  <EventData>
    <Data>1496835596276001519</Data>
    <Data>1</Data>
    <Data>APPCRASH</Data>
    <Data>Not available</Data>
    <Data>0</Data>
    <Data>BrassConsoleApp.exe</Data>
    <Data>1.0.0.0</Data>
    <Data>60c2722d</Data>
    <Data>mso20win32client.dll</Data>
    <Data>0.0.0.0</Data>
    <Data>60a155a8</Data>
    <Data>c000041d</Data>
    <Data>001d3a12</Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>
\\?\C:\TMP\{348A1C8B-8F9A-4947-A735-1A6662FAB73B} - OProcSessId.dat
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBA96.tmp.dmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBD95.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBDC5.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBDD3.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBE22.tmp.txt</Data>
    <Data>\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_BrassConsoleApp._a65121a9886cf85d89cc2caea488de84ebbc6379_15a45da1_128d96b7-c591-43c7-8393-71b1b078c790</Data>
    <Data>
    </Data>
    <Data>0</Data>
    <Data>b2318536-61c1-4958-85c0-a6803c4bbd3b</Data>
    <Data>268435456</Data>
    <Data>e03e080836cae1e184c5d40b5330eaef</Data>
    <Data>0</Data>
  </EventData>
</Event>

任何帮助将不胜感激! 谢谢

解决方法

在尝试了多种方法并处理了一个多星期之后,我决定通过将 3 个计时器替换为一个来重组我的服务。单个计时器检查一天中的时间并调用适当的进程。 我提出这个问题是希望有人知道破译事件日志条目。由于我没有得到任何回应,我需要继续寻找解决方案。 感谢你们中的那些看过我的人,请在我继续前进时忽略我最初的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?