ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    .NET Stack Trace Failing to Connect to MySQL

    Developer Discussion
    iis stack trace net mysql dns
    2
    10
    3.6k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • scottalanmillerS
      scottalanmiller
      last edited by

      I have a C# .NET application that works fine with one database and fails when connecting to a copy of it hosted somewhere else. I'm a little confused by why it is failing as when I attempt to connect manually it gives me no issues and there is no DNS entry for either database server. The one that works is on the LAN, the one that fails is on the WAN, but not clear how that would create this issue.

      Here is the stack track:

      Stack Trace:
      
      
      [SocketException (0x2af9): No such host is known]
         System.Net.Dns.GetAddrInfo(String name) +471
         System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6, Boolean throwOnFailure) +125
         System.Net.Dns.GetHostEntry(String hostNameOrAddress) +5414699
         MySql.Data.Common.StreamCreator.GetStream(UInt32 timeOut) +338
         MySql.Data.MySqlClient.NativeDriver.Open() +303
      
      [MySqlException: Unable to connect to any of the specified MySQL hosts]
         MySql.Data.MySqlClient.NativeDriver.Open() +355
         MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() +147
         MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() +54
         MySql.Data.MySqlClient.MySqlPool.GetConnection() +52
         MySql.Data.MySqlClient.MySqlConnection.Open() +227
         DataAccess.GetPageSecurityInfo() in c:\Inetpub\wwwroot\ManagementConsole\App_Code\DataAccess.cs:1358
         ASP.global_asax.Application_Start(Object sender, EventArgs e) in c:\Inetpub\wwwroot\ManagementConsole\Global.asax:18
      
      1 Reply Last reply Reply Quote 0
      • scottalanmillerS
        scottalanmiller
        last edited by

        Okay, a bit crazy but I created a hosts file entry on the application server for the database server and it moved forward! No idea why that works, but the error seemed to indicate that that would be the case so, whatever. Now I have a new error, of course:

        Source Error:
        
        
        Line 97: 			Dictionary<string, int> pageSecurity = (Dictionary<string, int>)Application["pageSecurity"];
        Line 98: 
        Line 99: 			if (pageSecurity.ContainsKey(appRelativeVirtualPath))
        Line 100:			{
        Line 101:				Permission permissionRequired
        
        1 Reply Last reply Reply Quote 0
        • scottalanmillerS
          scottalanmiller
          last edited by

          And here is the associated stack trace to go with it:

          Stack Trace:
          
          
          [NullReferenceException: Object reference not set to an instance of an object.]
             Main.IsAccessAllowed(String appRelativeVirtualPath) in c:\Inetpub\wwwroot\ManagementConsole\Main.master.cs:99
             Main.Page_Load(Object sender, EventArgs e) in c:\Inetpub\wwwroot\ManagementConsole\Main.master.cs:24
             System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
             System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
             System.Web.UI.Control.OnLoad(EventArgs e) +99
             System.Web.UI.Control.LoadRecursive() +50
             System.Web.UI.Control.LoadRecursive() +141
             System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
          
          1 Reply Last reply Reply Quote 0
          • scottalanmillerS
            scottalanmiller
            last edited by

            Sadly not as obvious of a problem as the first portion was.

            1 Reply Last reply Reply Quote 0
            • scottalanmillerS
              scottalanmiller
              last edited by

              Pinging @andyw as he is our resident .NET expert (and the author of the code in question.)

              1 Reply Last reply Reply Quote 0
              • scottalanmillerS
                scottalanmiller
                last edited by

                FYI: If I make no change except to direct the request to the "old" database, this error goes away and all works fine. The moment that I point the application server to the "new" database (same platform, same version, full copy) I get the error.

                1 Reply Last reply Reply Quote 0
                • A
                  AndyW
                  last edited by

                  Try restarting the app or recycling the applicaton pool after pointing to the new database. There may be some startup code that has to run.

                  Somewhere the Application object has to be loaded with an object with a key of "pageSecurity", and startup is the most likely place for that to happen. Since it's not happening, the code in Main.master.cs (the code file for the main ASP.NET master page, which is sort of like a layout template) is blowing up.

                  scottalanmillerS 2 Replies Last reply Reply Quote 1
                  • scottalanmillerS
                    scottalanmiller @AndyW
                    last edited by

                    @AndyW said:

                    Try restarting the app or recycling the applicaton pool after pointing to the new database. There may be some startup code that has to run.

                    Seems unlikely since under circumstances where the existing database changes IP addresses it just needs to be repointed and not recycled. And when I point back, it just works right away too. I'll try that though.

                    1 Reply Last reply Reply Quote 0
                    • scottalanmillerS
                      scottalanmiller @AndyW
                      last edited by

                      @AndyW said:

                      Somewhere the Application object has to be loaded with an object with a key of "pageSecurity", and startup is the most likely place for that to happen. Since it's not happening, the code in Main.master.cs (the code file for the main ASP.NET master page, which is sort of like a layout template) is blowing up.

                      Thanks, will test that tomorrow.

                      1 Reply Last reply Reply Quote 0
                      • A
                        AndyW
                        last edited by AndyW

                        I see what you mean. And also, if you're making the change in the web.config, that should trigger an application restart anyway.

                        Something is preventing the pageSecurity object from being set. You could do a global text search for "pageSecurity" and find the code that sets it. That may be where the failure is happening.

                        Normally I would expect this to be caused by a missing security-related table, like Roles or something. But you said it was a full copy. You might want to double check.

                        1 Reply Last reply Reply Quote 0
                        • 1 / 1
                        • First post
                          Last post