Avatar billede bryderen Nybegynder
20. august 2009 - 10:40 Der er 23 kommentarer og
1 løsning

Site virker på localhost men ikke på surftown webhotel.

Hej,

Jeg har netop færdiggjort min hjemmeside, og alt fungerer som det skal på localhost, men ikke ude på webhotellet...

Jeg får følgende fejlmedd.:

"Could not load file or assembly 'Microsoft.Data.Odbc, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified."

Jeg har skrevet til surftown, men de svarer mig ikke...

Er der nogen der har nogle forslag til hvad der er galt?
Avatar billede Michael2650 Nybegynder
20. august 2009 - 10:58 #1
Et godt råd til at få surftown til at svare på de mail du sender, er at gen-sende e-mailen for hver dag der går uden svar.

Hvis dette ikke virker gå på trustpilot og skrev en moderat klage. Så skal jeg love dig, der bliver svaret på din klage af deres manager på under 5 min. ;)

Det virkede for mig. :)
Avatar billede bryderen Nybegynder
20. august 2009 - 11:06 #2
Okay tak,

Er det rigtig opfattet at du også mener at fejlen må ligge hos surftown?

Andet syns jeg ikke giver mening...
Avatar billede aaberg Nybegynder
20. august 2009 - 11:11 #3
Jeg fant dette på surftowns wiki.
http://wiki.surftown.dk/index.php/Kan_jeg_bruge_ODBC%3F

sitat:
Det er dog ikke muligt at bruge ODBC fra ASP.NET 1.1.

Kan det være det som er problemet?
Avatar billede aaberg Nybegynder
20. august 2009 - 11:15 #4
Her er et annet link, der siger lidt mere:
http://wiki.surftown.dk/index.php/Begr%C3%A6nsninger_i_ASP.NET
Avatar billede aaberg Nybegynder
20. august 2009 - 11:22 #5
Hvis du bruger en Access database, vil jeg råde dig til at bruge OleDB i stedet for ODBC. OleDB er en nyere og bedre standard. Det er mange år siden at Microsoft stoppede at udvikle dere ODBC drivers.
Avatar billede bryderen Nybegynder
20. august 2009 - 11:25 #6
Jeg er ret sikker på at jeg bruger version 3.51. Jeg har også en anden hjemmeside der ligeledes ligger på surftown, der bruger samme version og fungerer fint...
Avatar billede bryderen Nybegynder
20. august 2009 - 11:30 #7
Surftown har tidligere skrevet til mig i forbindelse med jeg testede siden på webhotellet, hvor det heller ikke fungerede:

"...

Ydermere stod asp.net versionen til 1.1. Jeg har ændret det til 2.0 (3.5) og din side synes nu."

Spørgsmålet er bare om de har ændret det... Og kan jeg se det nogen steder?
Avatar billede bryderen Nybegynder
20. august 2009 - 11:31 #8
Jeg bruger MySQL database...
Avatar billede aaberg Nybegynder
20. august 2009 - 11:36 #9
Hvis du bruger MySQL, bør du bruge MySQL's ADO.NET klasser, og ikke ODBC.

Problemet med ODBC er, at det er en gammel standard, som ikke længere holdes ved lige. Hvis ODBC driveren på serveren crasher, er den eneste måde at få den i gang igen, er ved at genstarte hele serveren. Og det kommer Surftown helt sikker ikke til at gøre midt på dagen, bare fordi nogle få sider er afhængige af ODBC driveren.

Her er et link til MySQL's ADO.NET connector.
http://dev.mysql.com/downloads/#connector-net
Avatar billede bryderen Nybegynder
20. august 2009 - 11:56 #10
Okay... Det vil jeg da sætte mig ind i så... Tror du at det løser mit problem?
Avatar billede bryderen Nybegynder
20. august 2009 - 12:17 #11
Jeg har downloadet den connecter fra ADO.NET nu... og jeg har fået en masse filer...

Jeg sidder og arbejder i Visual Studio .NET 2008 professionel Edition.

Jeg har aldrig arbejdet med andet end MySQL med ODBC... Så jeg er lidt på bar bund her...

Havde bare lidt en formodning om at jeg skulle add'e en reference, ligesom jeg add'ede Microsoft.Data.Odbc.

Og så ændre i min connectionstring, hvori der pt. står:

"<add key="MDBString" value="Driver={MySQL ODBC 3.51 Driver};Server=server;Port=3306;Database=_db;User=user;Password=pass;Option=3;"/>" (i min web.config)

Er det naivt at tro eller er det meget mere kompliceret end det?

Kan du hjælpe?
Avatar billede aaberg Nybegynder
20. august 2009 - 12:58 #12
Du skal tilføje reference (som du selv foreslår) og selvfølgelig ændre connectionstrings.

Alle steder i din kode hvor du bruger en OdbcConnection eller OdbcCommand, skal dette ændres til en MySqlConnection og MySqlCommand.

Nu kender jeg ikke til, hvordan du har lavet dine side, så det er svært for mig at sige om der skal laves flere ændringer.
Avatar billede aaberg Nybegynder
20. august 2009 - 12:59 #13
Men, får du det til at virke med MySQL connectoren, løser det helt sikkert dit problem.
Avatar billede bryderen Nybegynder
20. august 2009 - 13:21 #14
okay det lyder godt!

Jeg har tilføjet adodb som reference.

Hvordan skal connectionsstringen se ud?

""<add key="MDBString" value="Driver={MySQL ODBC 3.51 Driver};Server=server;Port=3306;Database=_db;User=user;Password=pass;Option=3;"/>"

Der skal vel stå noget andet i driver feltet?

Jeg skriver også i hver enkelt fil apsx.cs fil:

using Microsoft.Data.Odbc;

Hvad skal der stå i stedet for?

Når jeg opretter forbindelse til databasen skriver jeg ex:

protected void databind_HentVelkomst2(string SQL)
        {
            try
            {
                OdbcConnection Conn = new OdbcConnection (ConnStr);
                Conn.Open();

                OdbcCommand Cmd = new OdbcCommand();
                Cmd.CommandText = SQL;
                Cmd.Connection = Conn;
                //rapport.Text = SQL;
                OdbcDataReader OurDataReader = Cmd.ExecuteReader();

                if (OurDataReader.Read())
                {
                   
                }
                Conn.Close();
            }
            catch (Exception fejl)
            {
                Response.Write(fejl.ToString());
            }
        }

skal det så ændres til:

protected void databind_HentVelkomst2(string SQL)
        {
            try
            {
                MySqlConnection Conn = new MySqlConnection(ConnStr);
                Conn.Open();

                MySqlCommand Cmd = new MySqlCommand();
                Cmd.CommandText = SQL;
                Cmd.Connection = Conn;
                //rapport.Text = SQL;
                MySqlDataReader OurDataReader = Cmd.ExecuteReader();

                if (OurDataReader.Read())
                {
               
                }
                Conn.Close();
            }
            catch (Exception fejl)
            {
                Response.Write(fejl.ToString());
            }
        }
Avatar billede folmani Nybegynder
21. august 2009 - 09:23 #15
Hej Bryderen, jeg følger lige med på sidelinien omkring surftown.dk. Og jeg vil gerne pointere at vi skam svarer vores kunders supporthenvendelser - det er jo netop kunderne vi lever af ;-)
Avatar billede aaberg Nybegynder
21. august 2009 - 12:32 #16
Din connectionstring skal se omtrent sådan ud:
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Altså ingen "Driver"-del.

Et godt sted at kigge, hvis man er i tvivl om connectionstrings, er www.connectionstrings.com.

Ellers ser din kode nogenlunde rigtig ud, synes jeg.

Prøv at se om du kan få det til at virker, ellers må du bare spørge igen :-)
Avatar billede aaberg Nybegynder
21. august 2009 - 12:33 #17
For at udtrykke mig lidt mere præcist: Den kode du selv foreslår, hvor du bruger MySqlConnection, MySqlCommand og MySqlDataReader ser rigtig ud :-)
Avatar billede aaberg Nybegynder
21. august 2009 - 12:35 #18
En ting du dog bør huske på. Hvis din datareader fejler, bliver forbindelsen til databasen aldrig lukket.

Prøv dette i stedet.

protected void databind_HentVelkomst2(string SQL)
        {
            try
            {
                MySqlConnection Conn = new MySqlConnection(ConnStr);
                Conn.Open();

                MySqlCommand Cmd = new MySqlCommand();
                Cmd.CommandText = SQL;
                Cmd.Connection = Conn;
                //rapport.Text = SQL;
                MySqlDataReader OurDataReader = Cmd.ExecuteReader();

                if (OurDataReader.Read())
                {
             
                }
            }
            catch (Exception fejl)
            {
                Response.Write(fejl.ToString());
            }
            finally
            {
                Conn.Close();
            }
        }


finally-blokken bliver kaldt uanset om programmet fejler eller ej.
Avatar billede bryderen Nybegynder
21. august 2009 - 14:05 #19
Til Folmani: Jeg har modtaget svar fra Surftown idag... (ca. 72 timer efter)

svar fra Surftown:

"DLLen er ikke en del af standard pakken til .NET, derfor ligger den ikke i GAC på vores servere.

Du kan uploade den fra din egen maskine til bin folderen, og så skulle det virke fint."

Jeg har svaret at jeg har uploadet .dll filen fra starten af, og at jeg ikke helt forstår hvad han mener...
Avatar billede bryderen Nybegynder
21. august 2009 - 14:31 #20
Tak for al din hjælp aaberg_cc.

Jeg har nu forsøgt at rette min default.aspx til så den fil ikke benytter odbc men ado, istedet.

Visual studio .NET brokker sig dog over alle de steder, hvor der står MySqlConnection, MySqlCommand og MySqlDataReader og skriver:
"Error    19, The type or namespace name 'MySqlConnection' could not be found (are you missing a using directive or an assembly reference?)"

Jeg tror jeg mangler en a using directive, men ved ikke hvad den hedder?
Avatar billede aaberg Nybegynder
21. august 2009 - 19:36 #21
Du må i første omgang sørge for at du har tilføjet reference mysql.data.dll filen. Dette gør du ved at højreklikke på References og "Add Reference".

Når det er gjort, skal du øverst i din kodefil skrive:
using MySql.Data.MySqlClient;

Så bør det virke.
Avatar billede folmani Nybegynder
22. august 2009 - 06:47 #22
Til Bryderen: Så vidt jeg kan se, så har vores support løst problemet for dig!

Sagen har været eskaleret til en af vores Windows-eksperter, hvilket forklarer den længere ekspeditonstid - jeg beklager dog, at du ikke er blevet 'varslet' herom undervejs.

God weekend ;-)
Avatar billede bryderen Nybegynder
25. august 2009 - 20:52 #23
Så er min hjemmeside kommet op at køre på surftown. Der manglede en Microsoft.Data.Odbc.dll - fil i bin biblioteket.
Jeg er ikke blevet færdig med at få omlavet det til ADO, men hvis du skriver et svar aaberg_cc, så giver jeg dig pointene, som tak for din hjælp. Jeg har lært meget af det du har fortalt mig! og din løsning havde sikkert løst problemet også! :)
Avatar billede aaberg Nybegynder
26. august 2009 - 08:55 #24
:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester