C# + Linq 程序随机消失

标签 c# .net debugging

我编写了一个使用 Linq 与 Microsoft SQL Server 对话的程序。它不间断地运行,并且不时对数据库进行一些更改,主要是在午夜。这行得通。但是几天后,该过程随机消失了。系统事件日志中没有异常窗口或条目。

现在,我以某种方式“修复”了它。我做了什么:每次它做了一些更改时,我只是重新连接到 sql server。

sql server uns 在同一台机器上 btw。并且还有其他程序正在使用该 sql server 运行。所以它不能下降或类似的东西。此外,我希望在那种情况下有异常(exception)。

以防万一,这很重要:还有其他客户端使用同一个数据库。

.net 应用怎么可能就这么消失了?它不应该抛出异常吗?即使它使用了一些 native 代码,而这个过程没有,不会有像“windows terminated this process because of xxxxx”这样的消息吗?

最佳答案

How is it possible a .net app can just disappear?

发生了三种情况之一:程序正常终止,程序异常终止自身(通过异常或快速失败),或者其他进程终止了该进程。

Shouldn't it throw exceptions?

我不明白这个问题。

And even if it uses some native code, which this process does not, wouldn't there be a message like "windows terminated this process because of xxxxx"?

嗯,首先,它可能不是 Windows 终止进程。例如,可能有人将调试器附加到进程,然后指示调试器终止进程。

有些应用程序在异常终止时会产生噪音,而有些则不会——特别是根据定义以快速失败终止的应用程序不会花时间缓慢终止——写入日志并让您知道发生了什么,等等。那是因为他们正在终止尽可能快

Now, I "fixed" it somehow. What I did: I just reconnect to the sql server every time it does some changes

如果我处于那种情况,我更愿意在尝试解决问题之前通过了解问题来解决问题。

关于C# + Linq 程序随机消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9130026/

相关文章:

c# - 在代码隐藏中获取 droplink 的值

.net - RX : Execute an action when a subscription is started or disposed?

asp.net - 如何将调试器附加到 IIS 而不是 ASP.NET 开发服务器?

c# - 为什么 C# 允许在集合初始值设定项中使用尾随逗号,但不允许在参数中使用?

c# - 验证不适用于 ImageButton 单击

c# - SQLDataSource 在从数据库中检索日期数据类型时返回 "mm/dd/yyyy hh:mm:ss"

c# - 进行异步 Web 服务调用和在另一个线程中进行同步 Web 服务调用有什么区别?

c# - 我可以使用什么来实现 C#/.NET 的高质量代码覆盖?

apache-flex - 在 Debug模式下更改突出显示行的颜色

python - 有什么方法可以使用 Pycharm 调试在终端中运行的脚本吗?