dreamweaver mx: anbindung zu db access (asp.net vb)

wakebunny

Grünschnabel
hallo!

bekomme hier bald die krise:
habe unter asp (VB) schon tausendmal eine datenbankverbindung mit dreamw.mx hergestellt und hatte nie probleme.

jetzt bin ich auf win 2003-server umgestiegen, habe asp.net (VB) in dw mx ausgewählt und versuche seit geraumer zeit eine verbindung zu einer access-datenbank herzustellen - fehlanzeige.

meine vorgehensweise:
in fenster "datenbanken" auf +-symbol ole-db-verbindung, dort dann auf "vorlagen" -> auswahl "access 2000", verbindungsname eingeben und den pfad (pfad habe ich mit provider schon abgestimmt, der passt!).
dann auf testen und "http-fehler 500 interner serverfehler".
es klappt einfach nicht woran liegt das?
was ist mit dieser datei web-config? die spiele ich immer extra hoch, wie es da steht!(bei asp war das die connection.asp datei).

hilfe!
gruß
wakebunny
 
wakebunny hat gesagt.:
"http-fehler 500 interner serverfehler".
es klappt einfach nicht woran liegt das?

Schau doch mal im Eventlog vom System nach, dort sollte eine genauere Beschreibung vom Fehler und die Ursache zu finden sein.
 
danke für die schnelle antwort!
allerdings habe ich den fehler, glaube ich, gefunden.
habe bei meinen bisherigen asp-seiten immer eine global.asa im root-verzeichnis (besucherzähler, onlinezähler, etc.) und so auch diesmal. (funktioniert allerdings bei asp.net nicht mehr, leider!)
jetzt habe ich diese rausgelöscht und es geht. hat wahrscheinlich was mit dieser zu tun!

gibt es irgendwo ein beispiel für eine global.asa für asp.net? (heisst die dann global.asax?)
damit ich den unterschied in der syntax sehen kann zur bisherigen? (wäre schade, wenn ich auf den zähler verzichten müsste, war sehr komfortabel!)

gruß
wakebunny
 
Mit der global.asax (ja so heißt sie :)) Datei kannst du eigentlich nur applikatiosnweite Ereignisse behandeln (SessionStart, SessionEnd, etc). Wenn du das nicht vor hast ist die Datei auch nicht nötig.

Die von VS.NET kreierte Datei sieht folgendermaßen aus:

Code:
using System;
using System.Web;
using System.Web.SessionState;

namespace DeinNamespace
{

   public class Global : System.Web.HttpApplication
   {

      public Global()
      {
			
      }	
		
      protected void Application_Start(Object sender, EventArgs e)
      {

      }
 
      protected void Session_Start(Object sender, EventArgs e)
      {

      }

      protected void Application_BeginRequest(Object sender, EventArgs e)
      {

      }

      protected void Application_EndRequest(Object sender, EventArgs e)
      {

      }

      protected void Application_AuthenticateRequest(Object sender, EventArgs e)
      {

      }

      protected void Application_Error(Object sender, EventArgs e)
      {

      }

      protected void Session_End(Object sender, EventArgs e)
      {

      }

      protected void Application_End(Object sender, EventArgs e)
      {

      }
			
   }
}
 
ich zeig dir hier mal den code meiner bisherigen global.asa,
mit dieser habe ich dann eine textdatei ausgelesen und zurückgeschrieben für den besucherzähler und den onlinezähler. vorteil von dieser war bisher, dass beim refreshen der seite der zähler nicht einfach weitergezählt hat.
mit einer applikation (<%=Session("Start")%> .. <% Response.Write(Application("counter")) %> ..<%=Application("Active")%>) auf der entsprechenden seite habe dann diese zähler aufgerufen.

die global.asa bisher:


// <SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub SaveCounterState
Set objFS = Server.CreateObject("Scripting.FileSystemObject")
Set fileCounter = objFS.CreateTextFile(Application("counterFile"), true)
fileCounter.WriteLine(Application("counter"))
fileCounter.Close
Set fileCounter = Nothing
Set objFS = Nothing
End Sub

Sub ReadCounterState
Set objFS = Server.CreateObject("Scripting.FileSystemObject")
If objFS.FileExists(Application("counterFile")) Then
Set fileCounter = objFS.OpenTextFile(Application("counterFile"))
Application("counter") = fileCounter.ReadLine
fileCounter.Close
Set fileCounter = Nothing
Else
Application("counter") = 0
End If
Set objFS = Nothing
End Sub

Sub Application_OnStart
Application("active") = 0
End Sub

Sub Application_OnEnd
End Sub

Sub Session_OnStart
Session.Timeout = 30
Session("Start") = Now
Application.Lock
Application("counterFile") = "E:\Clients\bkk-mtu.de\www\datenbank\counter.txt"
ReadCounterState()
Application("counter") = Application("counter") + 1
SaveCounterState()
Application("active") = Application("active") + 1
Application.Unlock
End Sub

Sub Session_OnEnd
Application.Lock
Application("active") = Application("active") - 1
Application.Unlock
End Sub

// </script>

wäre es viel hier zu ändern, damit die auf asp.net funktioniert?

gruß
wakebunny
 
Sollte eigentlich nicht viel Arbeit sein das zu ändern.
Du musst einfach die Funktionen 'ReadCounterState' und 'SaveCounterState' in VB.NET umschreiben und die 'Session_Start' und 'Session_End' Methode ebenso.

Meine Global.asax war die C# Version, die VB.NET Version sieht folgendermaßen aus:
Code:
Imports System.Web
Imports System.Web.SessionState

Public Class Global
    Inherits System.Web.HttpApplication

    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Wird ausgelöst, wenn die Anwendung gestartet wird.
    End Sub

    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Wird ausgelöst, wenn die Sitzung gestartet wird.
    End Sub

    Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
        ' Wird am Anfang jeder Anforderung ausgelöst.
    End Sub

    Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
        ' Wird ausgelöst, wenn versucht wird, die Verwendung zu authentifizieren.
    End Sub

    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
        ' Wird ausgelöst, wenn ein Fehler auftritt.
    End Sub

    Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
        ' Wird ausgelöst, wenn die Sitzung beendet wird.
    End Sub

    Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
        ' Wird ausgelöst, wenn die Anwendung beendet wird.
    End Sub

End Class

Hatte erst nicht auf die Sprache geachtet :)
 
leider bin ich nicht so versiert beim proggen!
hab's jetzt mal so versucht, allerdings weiss ich nicht wie die counterstate umgeschrieben werden sollen.
hab's so hochgespielt und prompt ne fehlermeldung bekommen.
was stimmt hier nicht?

// <SCRIPT LANGUAGE=VBScript RUNAT=Server>

Imports System.Web
Imports System.Web.SessionState

Public Class Global
Inherits System.Web.HttpApplication

Sub SaveCounterState
Set objFS = Server.CreateObject("Scripting.FileSystemObject")
Set fileCounter = objFS.CreateTextFile(Application("counterFile"), true)
fileCounter.WriteLine(Application("counter"))
fileCounter.Close
Set fileCounter = Nothing
Set objFS = Nothing
End Sub

Sub ReadCounterState
Set objFS = Server.CreateObject("Scripting.FileSystemObject")
If objFS.FileExists(Application("counterFile")) Then
Set fileCounter = objFS.OpenTextFile(Application("counterFile"))
Application("counter") = fileCounter.ReadLine
fileCounter.Close
Set fileCounter = Nothing
Else
Application("counter") = 0
End If
Set objFS = Nothing
End Sub

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
Application("active") = 0
End Sub

Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
End Sub

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
Session.Timeout = 30
Session("Start") = Now
Application.Lock
Application("counterFile") = "E:\clients\realschule-wilhelmsdorf.de\www\database\counter.txt"
ReadCounterState()
Application("counter") = Application("counter") + 1
SaveCounterState()
Application("active") = Application("active") + 1
Application.Unlock
End Sub

Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
Application.Lock
Application("active") = Application("active") - 1
Application.Unlock
End Sub

End Class

// </script>
 
Zurück