Avatar billede Lasse Novice
07. maj 2002 - 23:48 Der er 20 kommentarer og
1 løsning

connection streng for 100. gang

Dette spg. er sikkert stillet 850 gange, og her kommer saa nummer 851. Jeg skal tilgaa en database. Det der er anderledes ved denne connection er at databasen ligger bag en firewall. Jeg har lavet et hul i firewallen(vha portmapping). Jeg ved ikke om der er hul, saa det er noget jeg skal tjekke foerst(hvordan goeres det?). Her er min connectionstreng:

"Server=xxx;UID=yyy;PWD=zzz;Database=qqq"

Her er xxx et IP nummer, som er min firewall. Firewallen redirigerer saa port(1433) til min database paa det interne netvaerk. Er port 1433 den eneste der skal aabnes for?

Bruger jeg samme connection streng indenfor firewallen hvor xxx er udskiftet med navnet paa db serveren, saa virker applikationen fint.
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 00:05 #1
For at tjekke om der er hul kan du prøve at telnette til serveren.

Prøv med følgende i din Connectionstring

"Server=xxx;UID=yyy;PWD=zzz;Database=qqq;PORT=1433;"
Avatar billede Lasse Novice
08. maj 2002 - 00:09 #2
nope... virker ikke. Fejl:

Unknown connection option in connection string: port.
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 00:09 #3
Det kan også være at det bliver nødvendigt at tiljøje nedenstående til din connection da du højst sandsynligt skal køre TCP/IP og ikke Named Pipes som er default.

"Network=DBMSSOCN"
Avatar billede Lasse Novice
08. maj 2002 - 00:12 #4
Jeg bruger New SqlCommand ... hvilket maaske er forkert??? Skal jeg bruge oledbcommand istedet?
Avatar billede Lasse Novice
08. maj 2002 - 00:15 #5
nope, samme fejl som i starten...

SQL server does not exist or access denied...

det lyder som om jeg ikke har faaet aabnet for alt i firewallen, men skal jeg aabne for mere end 1433?
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 00:16 #6
Prøv at lave din connectionstring direkte til provideren, sådan her:

"Provider=sqloledb;Network Library=DBMSSOCN;Data Source=xxx.xxx.xxx.xxx,1433;Initial Catalog=qqq;User ID=yyy;Password=zzz;"

Dette vil nok kræve at du bruger OleDb klasserne istedet for SqlClient
Avatar billede Lasse Novice
08. maj 2002 - 00:17 #7
Sorry:

Jeg bruger SqlConnection hvilket maaske er forkert??? Skal jeg bruge oledbconnection istedet
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 00:19 #8
Prøv at bruge OleDbConnection og så den sidste connectionstring jeg postede.
Avatar billede Lasse Novice
08. maj 2002 - 00:22 #9
samme fejl
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 00:32 #10
Må jeg se din kode som connecter til databasen?
Avatar billede Lasse Novice
08. maj 2002 - 00:41 #11
2 sek.... jeg tror det virker nu... skal lige teste lidt videre... kommer tilbage...
Avatar billede Lasse Novice
08. maj 2002 - 00:53 #12
moonduck... kan du se denne side:

http://200.56.227.53/index8.aspx
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 00:55 #13
Jeg har lige testet ovenstående connectionstring og den virker altså upåklageligt så længe at du bruger OleDbConnection.

Hvis du skal bruge et simpelt eksempel til at teste om du kan få kontakt så prøv med dette(Sørg blot for at din SQL returnerer en text/varchar kolonne):

<%@ Page Language="C#" debug="true"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="C#" runat="Server">
    void Page_Load(){
            OleDbConnection Conn = new OleDbConnection("Provider=sqloledb;Network Library=DBMSSOCN;Data Source=xxx.xxx.xxx.xxx,1433;Initial Catalog=yyyy;User ID=zzz;Password=qqqq;");
           
            OleDbCommand Comm = new OleDbCommand("SELECT TekstFelt FROM tblFirma", Conn);
           
            Conn.Open();
            OleDbDataReader objDataReader = Comm.ExecuteReader();
           
            string output = "";
            while( test.Read() ){
                output += test.GetString(0) + "<br />";
            }
            Conn.Close();
            lblTest.Text = output;
    }
</script>

<asp:label id="lblTest" runat="server" />
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 00:57 #14
Ja, jeg kan godt se siden
Avatar billede Lasse Novice
08. maj 2002 - 00:58 #15
Ja, jeg har ogsaa konkluderet at man skal bruge oledbconnection... Bruger Sqlconnection flere porte.... eller hvad sker der... (egentlig lidt ligemeget eftersom det andet virker). Det ser udtil at du har ret styr paa det mht. connection strings. Ved du et sted hvor det staar lidt mere beskrevet? Pointene er dine uanset hvad... hvis du altsaa kan se den side som jeg har givet en URL til.
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 00:59 #16
Hov, jeg glemte lige at lukke min reader i ovenstående kodeeksempel, dumme mig :-)
Avatar billede Lasse Novice
08. maj 2002 - 01:00 #17
mange takker for hjaelpen moonduck... det var laekkert.
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 01:09 #18
sqlConnection er optimeret direkte til MS SQL og styrer automatisk ting som f.eks. connection pooling. Men denne optimering sker på bekostning af alsidigheden af connectionmuligheder. Derfor bliver du tvunget til at bruge OleDb.

Der er mere at læse om OleDb her:
http://msdn.microsoft.com/en-us/oledb/htm/dasdkoledboverview.asp
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 01:10 #19
Avatar billede odegaard Nybegynder
08. maj 2002 - 08:13 #20
kan man ikke også her angive ip og port nr som "xxx.xxx.xxx.xxx:port" som man gør så mange andre steder?
Avatar billede jakobandersen Nybegynder
08. maj 2002 - 08:44 #21
Det kan man sikkert men det hjælper jo ikke noget da man SQL Serveren stadig vil forsøge at bruge Named Pipes og ikke TCP/IP
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