Announcement

Collapse
No announcement yet.

[.NET 2.0] Programm braucht knapp 1 Minute zum laden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [.NET 2.0] Programm braucht knapp 1 Minute zum laden

    Hallo zusammen,

    vielleicht hat das auch schonmal jemand erlebt und kann mir weiterhelfen.

    Das Programm startet zügig, und läuft auch einwandfrei, allerdings, bevor es lädt, vergeht fast eine Minute Zeit, sofern der User ein Domänenuser ist.
    Also, vom Doppelklicken auf die .exe, bis die erste Zeile im Code ausgeführt wird, vergeht diese Zeit. Das tritt sowohl auf, wenn wir den Code vom Netzwerk starten, als auch bei lokaler Ausführung. Unsere Assemblies sind alle signiert, und der StrongName wurde via Caspolicies als FullTrust Quelle ausgegeben. Zudem wurde KlickOnce aktiviert, die Anwendung hat ihr Manifest dabei.

    Es scheint aber so, als ob die Runtime irgendwas abprüft, bevor der Code ausgeführt wird, nur bin ich leider total Ratlos, um was es sich da handeln könnte.

    Bin für jeden Denkansatz dankbar.

    BeowulfOF
    Quote the raven Nevermore!

  • #2
    Hallo,

    hast Du Dir schon mal ein kleines Hilfstool geschrieben, was nur diese eine Aktion ausführt?
    Gruss

    Mirko

    Mappen statt hacken mit dem .NET O/R Mapper Invist

    Comment


    • #3
      Hilfstool? Welche Aktion?

      Das Problem ist darin, dass wirklich vom Zeitpunkt des Aufrufs im Explorer, bis zur Ausführung der ersten Zeile Code im Programm knapp eine Minute vergeht.

      Die erste Zeile ist bereits ein DateTime, welcher mit DateTime.Now gefüllt wird, damit dieses ca 7 Zeilen später ins Log wandert - eben um genau rauszufinden, was da so lange beim start gebraucht hat. Der Code läuft auch super zügig, und alles was dort passiert, läuft genausoschnell wie erwartet. Aber bis der Code erstmal ausgeführt wird, vergeht halt soviel Zeit.
      Quote the raven Nevermore!

      Comment


      • #4
        Tritt das Problem nur beim ersten Start auf oder immer? Beim ersten mal muß erst die ganze .NET-Runtime geladen werden und wenn der Rechner schmalbrüstig ist dauert es einige Zeit.

        Comment


        • #5
          Leider tritt das Problem bei jedem start auf, nicht nur beim ersten.
          Quote the raven Nevermore!

          Comment


          • #6
            Kannst auf einen Testrechner mal alles was mit .NET zu tun hat (also auch 1.0er, 1.1er-Versionen mit allen SP's) deinstallieren und .NET neu installieren.

            Testhalber auch mal Virenscanner und Firewall abschalten.

            Comment


            • #7
              Neuinstallation ist bereits geschehen, Virenscanner und Firewall wurden ausgeschaltet. Sah ja auch zuerst nach der Lösung aus, bis sich herausstellte, dass wir dazu als lokaler Administrator angemeldet waren, um den Dienst zu beenden. Sobald der Anwender einen Domänenaccount hat, ist diese Zeitspanne erst wieder da.
              Quote the raven Nevermore!

              Comment


              • #8
                Nur bei speziellen Kunden? Da .NET über die Domäne auch .NET-Rechte verwalte (neben NTFS, Freigaberechten, ... eine weitere Verkomplizierung der Rechtevergabe) könnte ich mir vorstellen das die vom Server bestimmte .NET-Rechtevergabe die Bremse ist.

                Comment


                • #9
                  Das ist ein guter Ansatzpunkt. Wo und wie kann man denn in die .NET-Policies im Netzwerk einblicke erhalten? Wenn ich morgen da bin, werd ich mir wohl mal anschauen müssen, was da eingestellt ist.

                  Und ja, nur bei dem einen Kunden, ist angepasste Software.
                  Quote the raven Nevermore!

                  Comment


                  • #10
                    Hallo,

                    Zudem wurde KlickOnce aktiviert...
                    wenn in ClickOnce die Option nicht abgewählt wurde, dass das Programm bei jedem Start auf dem Deployment-Server nachsehen soll, ob es eine neue Version gibt, entsteht automatisch eine gewisse Verzögerung. Allerdings waren das bei meinen ClickOnce-Anwendung niemals mehr als 3..5 Sekunden. Wenn die Verzögerung ca. 90 Sekunden dauert, würde das auf ein Netzwerkproblem (Protokoll- bzw. DNS-Timeout) hindeuten (d.h. der Client-Rechner findet den Deployment-Server erst im 2. Versuch).

                    Um diese Theorie zu prüfen, kann über mageui.exe direkt auf dem Deployment-Server die Update-Option auf 1 mal je Tag umgeschaltet werden (siehe angehängte Abbildung).
                    Attached Files

                    Comment


                    • #11
                      Ich hab aber nirgendwo einen Deployment-Server angegeben, wir haben auch gar keinen :-).

                      [edit]
                      So, heute haben wir das Netz von dem Kunden mal ausgetestet, im obersten teil des Domänenbaumes startet das Programm mit der knappen Minute Verzögerung, in den SubDomänen geht es wie gewohnt.

                      Ich suche also nur noch einen Tipp/Tutorial, wo man die Domänenweiten Policies für .NET Managen kann.
                      [/edit]

                      MFG BeowulfOF
                      Zuletzt editiert von BeowulfOF; 14.12.2007, 16:30. Reason: Update
                      Quote the raven Nevermore!

                      Comment


                      • #12
                        Hallo,

                        wenn die Regeln der CAS (Code Access Security) der Grund wären, gibt es in jedem Fall eine harte Exception. Da sich die verschiedenen Umgebungen jedoch nur durch die Zeitspanne unterscheiden, kann CAS nicht der Grund sein.

                        Wenn in Visual Studio auf der Registerseite Publish keine ClickOnce-Eintragungen vorgenommen wurden, würde ich zuerst folgendes machen:
                        1. Im Fall eines Windows XP-Rechners über Start | Ausführen die Netzwerkdiagnose starten: hcp://system/netdiag/dglogs.htm . Dabei speziell auf DNS-Fehler achten.
                        2. Die Einstellungen des Internet Explorers (siehe Abbildung) überprüfen, ob es bei den von der Verzögerung betroffenen Rechnern sichtbare Unterschiede gibt (speziell bei den Regeln zur certificate revocation)
                        Attached Files

                        Comment


                        • #13
                          So, NetDiag wurde auf zwei Maschinen ausgeführt, ich hab die Ergebnisse mal angehangen.

                          Das einzige was mir spontan auffällt (ich weis auch nicht genau, wonach ich suchen müsste) ist, dass auf dem langsamen Rechner die DataExecutionPrevention aktiviert ist. Wäre das ein Anhaltspunkt?

                          Die suche nach Revokes im Internet-Explorer habe ich testweise deaktiviert, hat aber keine Veränderung gebracht.

                          MFG BeowulfOF
                          Attached Files
                          Quote the raven Nevermore!

                          Comment


                          • #14
                            Wann immer ich so im Dunkeln tappe, starte ich Mark Russinovichs Process Monitor. Vielleicht hilft es auch Dir weiter:

                            http://technet.microsoft.com/de-de/s...45(en-us).aspx

                            Comment

                            Working...
                            X