none
Cache leeren ohne IIS-Reset RRS feed

  • Frage

  • Hallo,

    wir haben eine Anwendung die über Zertifikat (Maschine und User) abgesichert ist. Oftmals kommt es aber vor das ein Gerät ausgetauscht wird, dadurch ändert sich das Maschinen-Zertifikat und die Maschine kann nicht mehr über WCF und IIS verbinden.

    Erst nach einem IIS-Reset klappt die Verbindung der Maschine wieder.

    Ich gehe also davon aus, dass es am Zertifikat im Cache liegt der durch den IIS-Reset (oder Neustart) geleert wird.

    Wie kann man das Problem noch lösen ohne durch den IIS-Reset auch alle anderen aktuell verbundenen Geräte abwirft?

    Kann man eigentlich eine nicht zustande gekommene Verbindung eines neuen Rechner auf Grund des "falschen" Zertifikat auf dem Server prüfen/anschauen oder einzelne Zertifikate aus dem Cache manuell entfernen?

    Wäre Euch über ein paar Infos sehr dankbar.

    Viele Grüsse,
    Maximilian

    Sonntag, 30. Oktober 2011 14:36

Alle Antworten

  • Hallo,

    Habe sie schon mal versucht den Application Pool mehrmals hintereinander zu recyclen ?

    In dem Fall wird ein neuer W3WP ins Leben gerufen der einen alten ablösen tut.

    Mfg


    Steve Melan - BCEE My Blog : http://stevemelan.wordpress.com
    Mittwoch, 23. November 2011 21:02
  • Hi Steve,

    das Problem liegt nun ganz sicher an den Uer-Zertifikaten, hat sich das Zerifikat des User auf dessen Maschine erneuert und er hatte zuvor schon mal eine Verbindung zum Server, dann kann er danach keine Verbindung mehr herstellen. Das lliegt offensichtlich an WCF über das die Kommunikation läuft.

    Daher hilft in diesem Fall nur ein IIS-Reset auf dem Server, danach ist eine Verbindung wieder ohne Probleme möglich.

    Ich denke, sofern sich das machen lässt, das löschen eines einzelnen User-Zertifikat im IIS cache würde helfen das wir nicht jedesmal den IIS-Reset ausführen und alle Connections zu diesem Zeitpunkt auflösen.

    Viele Grüsse,
    Maximilian

    Donnerstag, 24. November 2011 08:03
  • Hallo Steve,

    kurze Frage nochmal zum Recylce. Wenn wir dies durchführen, werden dann die übrigen Verbindungen anderer Clients abgeworfen?

    Ich kann das aus meiner Sicht nicht prüfen bzw weiss nicht wie wir das selber prüfen könnten ob die Verbindungen über WCF dann gekillt werden wie beim IIS-Reset.

    Viele Grüsse,
    Maximilian

    Donnerstag, 1. Dezember 2011 00:10
  • Hallo Maximilian,

    Ich kann das aus meiner Sicht nicht prüfen bzw weiss nicht wie wir das selber prüfen könnten ob die Verbindungen über WCF dann gekillt werden wie beim IIS-Reset.

    ein Application Pool ist ein Prozess. Wenn dieser recyclet wird, wird beim nächsten Aufruf ein komplett neuer Prozess erstellt. Das führt dazu, dass sämtliche Informationen des alten Prozess wie bspw. Sessions, Applicationvariablen, ... nicht mehr existieren. Wenn eure Anwendung also bspw. mit Sessions arbeitet, wäre das genauso hinderlich.

    Allerdings wirst Du ohne Recyclen oder gar IIS Reset (ich wüsste nicht, wie man dier Zertifikate sonst erneuern sollte) nicht auskommen.

     


    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
    Donnerstag, 1. Dezember 2011 08:52
    Moderator
  • Hallo Stefan,

    danke für Deine Antwort. So was ähnliches habe ich mir schon gedacht...

    Ist den der IIS-Reset gleichzusetzen mit dem Recycle das default app pool? Ich hatte die Hoffnung ggf die im Cache abgelegten User-Zertifikate ggf manuell löschen zu können da es täglich knapp 8-10 Anwender betrifft. Wenn wir mehrfach über den Tag den Reset durchführen, ist das irgendwie nicht so toll.

    Kann ich den am IIS irendwo protokollieren lassen welcher Client sich anmelden wollte aber wegen dem Zertifikat nicht konnte?

    Gruss,
    Maximilian


    Nachtrag:
    Ist dieses Verhalten allgemein so normal? Ich denke andere Dienste, Programme oder was sonst verwendet ebenfalls User-Zertifikate zum absichern der Verbindung und ein ständiger Reset/Recycle ist ja irgendwo auch nicht gut.

    • Bearbeitet MaxiTesch Donnerstag, 1. Dezember 2011 14:22
    Donnerstag, 1. Dezember 2011 13:43
  • Hallo Maximilian,
    Ist den der IIS-Reset gleichzusetzen mit dem Recycle das default app pool?
    Nein. Damit werden alle Anwendungen/Application Pools beendet und danach die IIS Dienste komplett neu gestartet.
    Ich hatte die Hoffnung ggf die im Cache abgelegten User-Zertifikate ggf manuell löschen zu können da es täglich knapp 8-10 Anwender betrifft. Wenn wir mehrfach über den Tag den Reset durchführen, ist das irgendwie nicht so toll.
    Dass das nicht toll ist, kann ich nachvollziehen. Aber in der Regel arbeiten solche (Web)Anwendungen bisher nur äußerst selten mit Userzertifikaten, da kann es dann schon sein, dass an der Funktionalität noch einiges verbesserungswürdig wäre.
    Kann ich den am IIS irendwo protokollieren lassen welcher Client sich anmelden wollte aber wegen dem Zertifikat nicht konnte?
    Wenn das einen Fehler im IIS bzw. dem Application Pool selbst auslöst, sollte das im IIS Logfile stehen.
    Nachtrag:
    Ist dieses Verhalten allgemein so normal? Ich denke andere Dienste, Programme oder was sonst verwendet ebenfalls User-Zertifikate zum absichern der Verbindung und ein ständiger Reset/Recycle ist ja irgendwo auch nicht gut.

    Wenn ihr täglich zigfach irgendwelche Geräte austauscht und damit dann die Zertifikate ungültig werden, stimmt da aber was bei euch nicht :)

    Ich wüsste nicht, dass man die einzelnen Zertifikate irgendwo abgreifen und ggfs. aus dem Cache löschen kann. Allerdings ist mir sowas wie bei euch bisher auch noch nie untergekommen, von daher kann es da schon irgendwo was geben, ich weiß das aber nicht :)

     


    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
    Donnerstag, 1. Dezember 2011 15:03
    Moderator
  • Hallo Stefan,

    sorry, habe das nicht so richtig beschrieben.

    Das Problem ist das ein Gerät aufgesetzt wird, bekommt dann ein Maschinen- und User-Zertifikat, meldet sich am Server über WCF an der Applikation und arbeitet.

    Sehen wir mal vom austauschen der Geräte ab, kann der Anwender nun ein Jahr mit dem Zertifikat arbeiten. Nun läuft irgendwann mal das Zertifikat ab, das wird dann automatisch am Client erneuert, nur dann kann der Client nicht mehr zum Server über WCF verbinden bis wir den IIS-Reset machen.

    Wie gesagt es hängt nicht am Austausch der Geräte, der Server lässt nur die Clients mit erneuertem Zertifikat nicht mehr zu so lange das alte Zertifikat nicht aus dem Cache entfernt ist und dadurch neu zum Einsatz kommt.

    Ist echt frustrierend.

    Gruss,
    Maximilian

    Donnerstag, 1. Dezember 2011 15:23
  • Hallo Stefan,

    noch eine Frage zum recycle. Kann es sein (oder ist es möglich) das bei einem Recycle die alten Verbindungen abgearbeitet werden aber auch die Zertifikate im Chache entfernt und daher erneuert werden können?

    Ich teste das noch mit einem grossen Datentransfer um während dem den app pool zu recyclen und zu schauen was passiert.

    Gruss,
    Maximilian

    Freitag, 2. Dezember 2011 05:18
  • Hallo Maximilian,

    noch eine Frage zum recycle. Kann es sein (oder ist es möglich) das bei einem Recycle die alten Verbindungen abgearbeitet werden aber auch die Zertifikate im Chache entfernt und daher erneuert werden können?

    eine Abarbeitung bestehender Verbindungen bzw. das Warten auf die Fertigstellung aktueller Tasks findet IIRC nicht statt. Die Anwendung wird (mehr oder weniger) kontrolliert heruntergefahren, der Prozess terminiert und ein neuer Prozess gestartet.

    Dein Test müsste eigentlich ergeben, dass der Datentransfer beim Recyclen abbricht, da die Gegenstelle auf dem Server, welche für den Transfer bereitgestanden hat, danach dann weg ist.

     


    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
    Freitag, 2. Dezember 2011 07:04
    Moderator