401 Stimmen

OwinStartup wird nicht ausgelöst

Ich hatte den OwinStartup-Konfigurationscode perfekt funktionieren und dann hat er aufgehört zu funktionieren. Leider bin ich mir nicht genau sicher, was ich getan habe, um ihn zum Stoppen zu bringen, und ich habe wirklich Schwierigkeiten, es herauszufinden.

Um sicherzustellen, dass ich die Grundlagen abgedeckt habe, habe ich mehrfach überprüft, ob ich die

[assembly:OwinStartup(typeof(WebApplication.Startup))] 

Attribut richtig zugewiesen habe und darauf geachtet, dass ich kein appSetting für owin:AutomaticAppStartup habe, das auf false gesetzt ist, also habe ich eins auf true gesetzt, um sicher zu gehen, da vorher nichts vorhanden war.

Ich habe auch versucht, das appSetting speziell anzugeben:

Vor dem Stopp habe ich die Microsoft.Owin.Security NuGet-Pakete auf 2.0.2 aktualisiert, also habe ich versucht, sie auf 2.0.1 zurückzusetzen (das war eine Qual), aber es hat nichts geändert. Ich habe WebActivator im Projekt installiert und verwende es, um andere Dinge zu initialisieren, aber ich habe das auf einer frischen WebApplication-Vorlage getestet und es funktioniert dort, also denke ich nicht, dass das der Übeltäter ist.

Ich habe auch versucht, meine Startup-Klasse zu entfernen und Visual Studio zu verwenden, um eine neue hinzuzufügen, indem ich den OWIN Startup-Klassentyp in Neues Element hinzufüge, und auch das wird nicht aufgerufen. Als nächstes habe ich versucht, eine zweite Startup-Klasse hinzuzufügen, da ich weiß, dass eine Ausnahme geworfen wird, wenn mehr als ein OwinStartup-Attribut definiert ist, aber dort wird keine Ausnahme geworfen.

Nicht sicher, was ich noch ausprobieren soll. Irgendwelche Gedanken?

Update

Es stellte sich heraus, dass Resharper den Verweis auf Microsoft.Owin.Host.SystemWeb entfernt hat, als ich ihn benutzte, um nicht verwendete Verweise zu entfernen.

866voto

Praburaj Punkte 11317

Stellen Sie sicher, dass Sie das Microsoft.Owin.Host.SystemWeb Paket im Projekt installiert haben. Dieses Paket wird für die Erkennung des Startvorgangs in in IIS gehosteten Anwendungen benötigt. Weitere Informationen finden Sie in diesem Artikel.

85voto

Simon_Weaver Punkte 129442

Wenn Sie von einer älteren MVC-Version aktualisiert haben, stellen Sie sicher, dass Sie nicht haben

in Ihrer web.config. Dadurch wird der Startvorgang unterdrückt.

Ändern Sie es stattdessen in true

Ich weiß, dass Sie das bereits erwähnt haben, aber manchmal lesen Leute (wie ich) nicht die ganze Frage und springen direkt zu den Antworten...

Irgendwo entlang der Linie - als ich auf MVC 5 aktualisiert habe, wurde dies hinzugefügt und ich habe es bis heute nie gesehen.

55voto

Aaron Sherman Punkte 3669

Alternative Antwort auf das diskutierte ursprüngliche Problem - Owin "wird nicht ausgelöst". In meinem Fall habe ich Stunden damit verbracht zu denken, dass es nicht ausgelöst wird, weil ich kein Breakpoint darin setzen konnte.

Beim Debuggen des OWIN-Startups in Visual Studio

  • IIS Express - Wenn Sie "F5" ausführen, wird der Code des OWIN-Startups unterbrochen

  • IIS - Wenn Sie "F5" ausführen, wird erst nach dem Laden des OWIN- (und global.asax-) Codes unterbrochen. Wenn Sie sich an W3P.exe anhängen, können Sie darin Schritte ausführen.

27voto

Remotec Punkte 9546

Wenn Sie Schwierigkeiten beim Debuggen des Codes in der Startup-Klasse haben, hatte ich auch dieses Problem - oder ich dachte, dass ich es hatte. Der Code wurde ausgeführt, aber ich glaube, dass dies geschieht, bevor der Debugger angehängt hat, sodass Sie keine Breakpoints im Code setzen und sehen können, was passiert.

Sie können dies beweisen, indem Sie eine Ausnahme im Configuration-Methode der Startup-Klasse werfen.

23voto

Rasmus Punkte 2533

DEBUGGING TIPS

Wenn das Debugging nicht funktioniert, versuchen Sie es mit IIS Express oder probieren Sie die folgende Methode für lokales IIS aus

Verwenden von lokalem IIS

Aus irgendeinem Grund ermöglicht diese Methode das Debuggen dieser Methode:

  1. Eine Webseite anfordern
  2. Am w3wp.exe-Prozess anhängen
  3. Die web.config-Datei berühren
  4. Eine Webseite anfordern

Zusätzlicher Tipp

Vielleicht wird dadurch ein Cache geleert:

  1. In der web.config das optimizeCompilations-Attribut mit einem falschen Wert hinzufügen

  2. Website ausführen

  3. Die Änderung in der web.config rückgängig machen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X