C# 调试时行为不一致,执行时不进行调试

C# 调试时行为不一致,执行时不进行调试,c#,windows,service,C#,Windows,Service,我正在使用.NETFramework 3.5及其现有的wierd行为编写一个小型windows服务。代码被卡住了 using (OracleConnection con = new OracleConnection("Data Source=abc;Persist Security Info=True;User ID=xyz;Password=xyz;Unicode=True")) { 但是,当我通过将调试器附加到服务来调试它时,它的工作状态良好。在这一点上毫

我正在使用.NETFramework 3.5及其现有的wierd行为编写一个小型windows服务。代码被卡住了

        using (OracleConnection con = new OracleConnection("Data Source=abc;Persist Security Info=True;User ID=xyz;Password=xyz;Unicode=True"))
        {


但是,当我通过将调试器附加到服务来调试它时,它的工作状态良好。在这一点上毫无头绪。

只是猜测一下,您是否在该行上设置了断点,并且正在以调试模式运行编译的exe?我记得很多年前,一位同事被逼疯了,因为他执行的exe是用option debug构建的,而不是在断点处停止的版本。正如我所说的,这只是一个猜测,可能它对lastes.net和vs版本无效

是否可能有多个线程尝试启动DB连接?此时您的服务打开了多少oracle连接?当然不应该如此。。因为目前只有一个线程在执行。不过,将来可能会出现这种情况。我不知道,我从来没有在Oracle上这样做过,也没有在其他DBs上这样做过,但这方面没有多少一致性。我已经部署了调试版本,您是否在某个地方留下了断点?尝试部署一个发布版本。还有很多断点。我还尝试部署了一个发布版本,但仍然没有luckweird,你确定这就是它被卡住的原因吗?您是否记录了一些异常,正在执行的实际操作,在windows事件查看器中没有任何内容?是的,我引入了文本文件记录来达到这一点。我在语句前后都有一个日志条目