Ich habe ein Problem mit meiner Entity Framework-basierten Website, nachdem ich sie auf Microsoft Azure gehostet habe. Wenn innerhalb von 30 Minuten keine Anrufe beim Server eingegangen sind, reagiert der Server nicht mehr vollständig und gibt für alle Anfragen interne Serverfehler (500) zurück.Timeout für Entity Framework-Server
Dies war kein Problem, wenn ich die Website lokal betrieben habe (ich könnte es stundenlang laufen lassen, ohne dass etwas passiert) und es würde immer noch funktionieren, wenn ich wieder dazu komme. Ich habe es geschafft, das Problem zu beheben, indem ich eine Schleife durchführte, die den Server alle 15 Minuten anpingt, aber das ist offensichtlich keine gute Lösung; also meine Frage ist: Wo und wie kann ich die Verbindungseigenschaften für meinen Server konfigurieren, um zu verhindern, dass er bei Nichtbenutzung abstürzt?
Ich weiß sehr wenig über Verbindung Authentifizierung und ich habe keine Ahnung, wie Sie dies beheben, wenn der einzige Fehler, den ich bekomme, ist ein interner Serverfehler (der sagt mir nichts). Hier
ist der Code auf Github: https://github.com/synthc/UMD.git
Ich habe dieses Problem nicht gesehen, aber ich frage mich, ob ein Arbeitsthread nach 30 Minuten Inaktivität recycelt wird. Behalten Sie Datenbankkontexte für lange Zeit? – Basic
Nun, ich mache nichts, um meinen Db-Kontext neu zu initialisieren, also würde ich annehmen, dass es nie neu zugewiesen wird (ist das eine schlechte Sache?). – synthc
Ich habe keine aktuellen Erfahrungen mit Azure, kann also nicht direkt kommentieren. In meinen MVC-Apps lebt der Kontext der Datenbank für die Lebensdauer der Anfrage. So kann ich beispielsweise Änderungen rückgängig machen, ohne mich um andere Anfragen kümmern zu müssen. Sehen Sie sich Unity an, um einen DBContext abzurufen. Es kann die Lebensdauer der Objekte für Sie übernehmen. Siehe http://StackOverflow.com/a/18264598/156755 – Basic