none
Serverfehler in der Anwendung "JQUERY"

    Frage

  • Hallo zusammen,

    ich experimentiere mit ASP.net und tippe dazu einige Beispiele aus einem Buch ab. Die meisten Beispiele laufen auch, bei anderen kommt allerdings ab und an eine Fehlermeldung im Browser.

    Das Merkwürdige ist, daß das Programm, welches nicht läuft, keine auffälligen Abweichungen zu einem anderen hat, welches keine Fehlermeldung bringt. Oder noch seltsamer: ich ein Programm, welches die Fehlermeldung brachte. Als ich ein anderes abtippte, welches einwandfrei lief, habe ich das fehlerhafte nochmals angeschaut und nichts gefunden, was hier groß anders sein sollte. Ich hab es gestartet und es lief jetzt.

    Für die Versuche greife ich auf eine SQL Server-Datenbank zu. In einem Programm sollen die Daten einer Tabelle in einer Webseite angezeigt werden. Kein Problem, funktioniert.

    In einem zweiten sollen, wie oben, die Daten tabellarisch und darunter ein paar Textfelder sowie ein "Senden"-Button angezeigt werden. Die Daten, die in die Textfelder eingegeben werden, werden durch den "Senden"-Button in die Datenbank geschrieben, danach die Tabelle neu eingelesen aktualisiert.

    Dabei taucht die Fehlermeldung im Browser auf (nicht im Programm-Code). Interessanterweise werden die eingegebenen Daten aber in die Datenbank geschrieben. Beim nächsten Start dieses Programms werden sie nämlich in der Datentabelle ausgegeben.

    Ich habe im Internet und in den Foren hier schon gesucht. Erst dachte ich, es läge daran, daß ich das Programm als 64bit- bzw. AnyCPU-Applikation gestartet habe. Das half aber auch nichts.

    Die Daten kommen aus einem SQL Server 2008 R2.

    Die VS-Version ist 2012.

    Der IIS-Server wurde, glaube ich, mit der VS-Version mitinstalliert. Ich habe hier keinerlei Änderungen vorgenommen.

    Java ist in der aktuellen Version installiert

    Die Fehlermeldung tritt bei Firefox und beim Internet Explorer auf. Es ist bei allen Programmen, die nicht richtig liefen, dieselbe Fehlermeldung (evtl. bis auf die Angaben im gelben Kasten, die ich nicht verglichen habe und die mir auch nichts sagen). Ich habe sie als Screenshot unten angehängt.

    Wie schon erwähnt: es sind erste Gehversuche. Ich wäre Euch also für anfängertaugliche Antworten sehr verbunden :-)

    Vielen Dank und viele Grüße

    Michael

    Mittwoch, 21. August 2013 10:01

Antworten

  • Hi Michael,

    ich denke es liegt daran das du in den Beispielen die nicht laufen JQuery Funktionalitäten verwendest.

    Dazu must du das Frameworke einbinden.

    Schau mal hier und hier.

    Steht aber sicher auch in deinem Buch ;)

    MFG

    Björn

    Mittwoch, 21. August 2013 10:13

Alle Antworten

  • Hi Michael,

    ich denke es liegt daran das du in den Beispielen die nicht laufen JQuery Funktionalitäten verwendest.

    Dazu must du das Frameworke einbinden.

    Schau mal hier und hier.

    Steht aber sicher auch in deinem Buch ;)

    MFG

    Björn

    Mittwoch, 21. August 2013 10:13
  • Hallo Björn,

    vielen Dank für Deine blitzschnelle Antwort.

    Und ja, jetzt funktioniert es tatsächlich. Vielen Dank.

    Nein, im Buch stand leider nichts davon. Ich hab jetzt den Code wie in Deinem zweiten Link angegeben in die global.asax eingefügt:

    Dim myScriptResDef As New ScriptResourceDefinition()
    myScriptResDef.Path = "~/Scripts/jquery-1.4.2.min.js"
    myScriptResDef.DebugPath = "~/Scripts/jquery-1.4.2.js"
    myScriptResDef.CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"
    myScriptResDef.CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.js"
    ScriptManager.ScriptResourceMapping.AddDefinition("jquery", Nothing, myScriptResDef)

    Hast Du mir bitte eine kurze Erklärung, was der Code da tut? So richtig hab ich es nicht verstanden.

    Ist "jquery-1.4.2.min.js" eine Datei? Falls ja, wird "-1.4.2" eine Versionsnummer darstellen, die dann auch auf jedem Rechner anders lauten könnte? Ich hab sie auf meinem Rechner nicht gefunden.

    Und werden die "http://"-Pfade zur Microsoft-Seite tatsächlich benötigt? Ich hab sie mal auskommentiert und das Programm läuft trotzdem.

    Nochmals vielen Dank für die rasche Unterstützung.

    Viele Grüße

    Michael

    Mittwoch, 21. August 2013 10:40
  • Hallo Michael,

    kleiner Hinweis noch zu den Versionsnummern von jQuery. 1.4.2 ist schon sehr, sehr alt und sollte nicht mehr verwendet werden. Nimm lieber 1.10.2 oder 2.0.3 (ich würde letztere nehmen)

      http://ajax.microsoft.com/ajax/jQuery/jquery-1.10.2.min.js
      http://ajax.microsoft.com/ajax/jQuery/jquery-2.0.3.min.js

    Der CdnPath wird nur dann verwendet, wenn man im ScriptManager Control EnableCDN auf True setzt. Siehe dazu:

      http://blogs.msdn.com/b/pranav_rastogi/archive/2012/09/21/asp-net-4-5-scriptmanager-improvements-in-webforms.aspx

    Da das bei dir aber nicht der Fall ist, spielt es keine Rolle, ob Du den Pfad in CdnPath bzw. CdnDebugPath angibst oder nicht.

    Ich würde die lokalen Dateien vorziehen. Schau mal in deinem Projekt im Ordner Scripts, da sollten die Dateien liegen. Kopier dort auch die o.a. neueren jQuery Dateien rein und pass den Pfad nochmal an.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 21. August 2013 10:49
    Moderator
  • Hi Michael,

    um es grob zusammen zu fassen.

    JQuery sind sind JavaSripte, die lokal auf dem Rechner ausgeführt werden.

    Durch denn Pfard gibst du an von wo und welche du benutzen möchtest.

    Wenn der Browser die Scripte schon heruntergeladen hat brauch er sie nicht nochmal herunterladen.

    Für ihn gehört aber der Server mit zum eindeutigen Erkennungsmerkmal. Das jemand anderes eine Seite hat die die JQuery Scripte auf den Microsoft Server verwenden ist sehr hoch. Wenn du sie als Referenz angibst würde sie also nicht nochmal heruntergeladen. Du kannst die Scripte aber auch bei dir auf den Browser Hosten, dann würde ein Besucher deiner Seite aber erst mal die Scripte von dir herunterladen müssen. (Wie gesagt vereinfacht!)

    MFG

    Björn

    Mittwoch, 21. August 2013 10:52
  • Hallo Stefan,

    vielen Dank für Deine Antwort.

    Wenn ich sie und die Antwort von Björn richtig interpretiere, handelt es sich dabei um eine Datei, die entweder auf "irgendeinem" öffentlich zugänglichen Server, wie z.B. dem Microsoft-Server oder auf meinem eigenen Rechner (später: dem Server, auf dem meine Webanwendung läuft) abgelegt ist.

    Liegt sie auf meinem Rechner, müßte die Datei zuerst vom Benutzer heruntergeladen werden. Geschieht das dann automatisch durch den Browser/meine Applikation oder muß er das manuell tun?

    Das Herunterladen dürfte ja keine Performanceprobleme aufwerfen, da die Datei ziemlich klein ist, oder? Wäre das Herunterladen eine einmalige Sache oder findet das bei jedem Aufruf meiner Webapplikation statt? (Edit: ich hab grad bei Björns Antwort gesehen, daß das eine einmalige Sache ist. Wer hat denn diese Scripte erzeugt? Werden die nie verändert bzw. gibt es dann jedesmal eine neue Version?)

    Liegt die Datei auf einem öffentlichen Server, müßte ich mich nicht darum sorgen, daß sie auf dem Rechner des Anwenders verfügbar ist. Allerdings könnte es zu Problemem führen, wenn dieser öffentliche Server aus irgendeinem Grund nicht verfügbar wäre?

    Den Ordner "Scripts" habe ich in dem Ordner des Testprojekts nicht gefunden. Wenn ich das aber richtig verstehe, kann ich einen x-beliebigen Ordner anlegen, dort die von Dir vorgeschlagene .js-Datei abspeichern und diesen Ordner als Pfad in meiner Anwendung angeben?

    Danke vielmals.

    Viele Grüße

    Michael


    Mittwoch, 21. August 2013 11:03
  • Hallo Björn,

    siehe meine Antwort/Fragen an Stefan.

    Was ist denn die allgemein bevorzugte Methode? Von externem Server oder von lokalem Rechner einbinden? Du schreibst, daß der Browser die Scripte nicht nochmals lädt, wenn er sie schon mal geladen hat.

    Dann würde es doch keine Rolle spielen, ob ich sie von extern oder lokal einbinde. Hat er sie schon auf seinem Rechner, werden sie nicht mehr geladen, hat er sie noch nicht, spielt es keine Rolle, ob sie z.B. vom Microsoft- oder meinem eigenen Server kommen. Oder sehe ich das falsch?

    Nochmals vielen Dank.

    Michael

    Mittwoch, 21. August 2013 11:07