VB.NET app crashes without warning

pigparent
pigparent used Ask the Experts™
on
I have a VB.NET application that I am always building and improving.  A month or two ago it suddenly started crashing without warning in debug mode rather than breaking in code where the warning occurred.  I cannot figure out what started it or how to stop it.  I don't even know what additional information would help anyone to answer the question except to say that it's a VB.NET Windows forms application running in VS2008 SP3.  Any and all assistance is greatly appreciated!
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Are you Running Sophos on your machine ?

Commented:
What is the error when the program crashes and when you run it outside the IDE, does it crash as well?
Meir RivkinFull stack Software Engineer

Commented:
did u implement exception handling and error logging in your code?
i'd put some time to implement this stuff which in future will make things alot easier in terms of monitoring your app.
CompTIA Network+

Prepare for the CompTIA Network+ exam by learning how to troubleshoot, configure, and manage both wired and wireless networks.

Author

Commented:
Not running Sophos -- have no idea what that is.

I usually do check the error message in the installed version and just walk through the code until the program vanishes from the screen and then start over with that line as the breakpoint and try to figure it out.  It would be nice if it dropped at that line and gave me the error.

I use error handling and that's not enough to save me.  It still crashes.  I don't use logging because I am new enough that i don't know what I would log and when.  It seems like once it's crashed you can't log anything then...and I don't know what I would want to track up to that point versus what would just bloat my database.  Is there an article you would recommend on this topic?

Thanks to each of you.
Commented:
Run your program outside the debuger andsee what error is thrown. (go to the project's debug or release folders and run the exe from there)

Author

Commented:
Well, I did that and it told me that it had an overflow error when returning data from Oracle Financials.  I am simply returning pay voucher data with the given SSN, start date, and end date.  It works 99.9% of the time.

I read online that it can be a rounding issue, but there's nothing to round in this query; I am providing a text string and two dates.  I also read that Microsoft stopped supporting the OracleClient for .NET so I switched to the provider released by Oracle.  In debug mode it fails when the very first connection to Oracle is attempted:

Dim conOraclePROD As New OracleConnection(My.Settings.OraclePROD)

I am using:

Imports Oracle.DataAccess.Client (v2.112.2.0)

So obviously I have not published an updated version because the software will fail.  But, without publishing the new version (and making the software for fail for all of my users) I cannot get the error message and have no idea why this isn't working.  That's why I need VS2008 to drop in debug mode and give me the error message.

Thanks again for all of the replies.

Author

Commented:
nepaluz, thanks so much!  I would have never known to do that.  I ran it that way and it says that 'Unicode' is an invalid connection string attribute.  Now I know my connection string is incompatible with Oracle's .NET provider.  THANKS!  Now, do you know how to get the debugger to activate again instead of the software just crashing?

Thanks!
Top Expert 2015

Commented:
For your information, the Oracle .NET provider is marked as obsolete in Visual Studio 2010. That means that it will be dropped in a not so far future. Microsoft suggest switching to the Oracle Data Provider (http://www.oracle.com/technetwork/topics/dotnet/index-085163.html) as soon as you can in order to insure that your application will still work in future versions of the framework.

I do not use Oracle myself, but was told by some of my Oracle students that the conversion from the Microsoft provider to the Oracle provider is not a big job since they are both built on the same base classes.

Author

Commented:
James, yeah, I mentioned above that I just switched and that was causing my app to not load at all but I discovered that it was a problem in the connection string.  You're right in that it was not a big job.  Very easy, really.  I just wish it were as easy to get VS2008 back to halting in the code and providing hte message at debug time :(
Most Valuable Expert 2012
Top Expert 2014

Commented:
Can you show a screenshot of the Debug->Exceptions window? Debug menu and click Exceptions.

Author

Commented:
CodeCruiser, I've attached it.  Would you like for me to expand any particular node?
Doc2.docx
Most Valuable Expert 2012
Top Expert 2014
Commented:
Seems fine. Try ticking the "Thrown" tickbox against the common language runtime exceptions. If that does not help, try ticking all.

Commented:
Unicode' is an invalid connection string attribute
Show us how you contruct your connectionstring (if you useany local variables, be sure to include their declarations too)

Author

Commented:
CodeCruiser, thanks for the suggestion.  I will try that.

Nepaluz, my connection string is working now.  It is:

Data Source=finprod;Persist Security Info=True;User ID=<UID removed>;Password=<pw removed>

I store it in the settings and refer to it in code:

Dim conOraclePROD As New OracleConnection(My.Settings.OraclePROD)

All I did was remove the phrase about Unicode and it worked like a champ.

Commented:
OK, so what is left to resolve then? Am I missing something here?

Author

Commented:
Nepaluz, VS2008 still does not break in debug mode -- it just silently crashes.  That was the reason for posting here.  I am trying to find out why and get it to halt at the code that is causing the error and give the error message.

Thanks.
Commented:
In your instance using Oracle Data Provider, VS IDE debugger will probably not break because the error occurs with the Oracle Data Provider (and its NOT managed code?). I suppose if you can include the code for Oracle Data Provider, then thedebugger would break inside that code. Having said that, have you tried flagging the exceptions as suggested above? If that fails, it may be the case that you can not handle errors originating in the Oracle Data Provider.
I've tried, maybe that's it.  Maybe they're concealed on an Oracle thread.  Thanks for all your help!

Author

Commented:
Thanks for assisting me today!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial