Wir haben eine IIS gehostete Web-Methode, die zufällig auf uns etwa 10% der Zeit stirbt. Bei dem Versuch, dies zu debuggen, haben wir Log.Debug() - Nachrichten vor jeder echten Codezeile hinzugefügt und es scheint, als würde es in zufälligen Zeilen absterben.IIS gehostet Web-Service-Methode Anruf nach dem Zufallsprinzip stirbt
Hat jemand dieses gesehen oder hat eine Idee, wie man das debuggt?
[weitere Details]
Wir haben viel Zeit es bei der Suche verbracht und habe folgendes entdeckt ...
Wir haben eine seperate selbst gehosteten WCF-Dienst, dass der Zugriff gleiche Datenbank und lebt auf der gleichen Maschine. Bei starker Belastung krächzt die Webmethode jedes Mal. Wenn es nicht unter Last ist, funktionieren die Dinge normalerweise gut (aber nicht 100%).
Hohe CPU scheint nicht Teil des Problems zu sein. Wir haben eine kleine App laufen lassen, die eine hohe CPU-Last erzeugte und der Web-Service ist nicht gestorben.
Der Web-Service stirbt, wenn wir entweder einen XmlSerializer neu erstellen (ohne den Befehl sgen precomp auszuführen) ODER NHibernate eine SessionFactory erstellen lassen. Die einzigen beiden Dinge, die diese Dinge gemeinsam haben, sind, dass sie 1) wie Dinge erscheinen, die Menschen normalerweise tun. 2) scheinen, als wären sie ziemlich intensiv.
Wir haben eine Global.asax hinzugefügt, um zu versuchen Application_End und Application_Error zu erfassen, aber weder Ereignis wird ausgelöst. Dies bedeutet für mich, dass es sich nicht um einen normalen Anwendungs-Pool-Reset handelt.
die Situation in unserer Entwicklungsumgebung Recreating wäre sehr schwierig, aber ich denke, dass wir den Punkt sind kurz vor dem, wo wir es als Option schauen müssen. In Bezug auf Threading war das auch mein Gedanke, aber was würde dazu führen, dass ein IIS-Thread einfach sterben würde? Wir sehen keine Nachrichten im Windows-Ereignisprotokoll, die mit IIS zu tun haben ... das scheint ... seltsam? Sollte es nicht zumindest eine Startup-Nachricht geben? –