Ich hatte den OwinStartup-Konfigurationscode einwandfrei und dann funktionierte er nicht mehr. Leider bin ich mir nicht sicher, was ich genau getan habe, damit es nicht mehr funktioniert, und es fällt mir wirklich schwer, es herauszufinden.
Um sicherzustellen, dass ich die Grundlagen abgedeckt habe, habe ich doppelt überprüft, um sicherzustellen, dass ich die habe
[assembly:OwinStartup(typeof(WebApplication.Startup))]
Das Attribut wurde ordnungsgemäß zugewiesen und es wurde sichergestellt, dass ich keine App-Einstellung für owin: AutomaticAppStartup habe, die auf false festgelegt ist. Daher habe ich aus Sicherheitsgründen eine Einstellung auf true festgelegt, da zuvor nichts vorhanden war.
<add key="owin:AutomaticAppStartup" value="true" />
Ich habe auch versucht, die AppSetting speziell aufzurufen:
<add key="owin:appStartup" value="WebApplication.Startup" />
Bevor es nicht mehr funktionierte, 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 ein Schmerz), aber es hat nichts geändert. Ich habe WebActivator im Projekt installiert und verwende es, um andere Dinge zu booten, aber ich habe das auf einer neuen WebApplication-Vorlage getestet und es funktioniert dort, sodass ich nicht denke, dass dies der Schuldige ist.
Ich habe auch versucht, meine Startup-Klasse zu entfernen und mithilfe von Visual Studio eine neue Klasse mit dem Typ OWIN Startup Class unter Add New Item hinzuzufügen, und das wird auch nicht aufgerufen. Als nächstes habe ich versucht, eine zweite Startup-Klasse hinzuzufügen, da ich weiß, dass sie eine Ausnahme auslöst, wenn mehr als ein OwinStartup-Attribut definiert ist, aber dort keine Ausnahme auslöst.
Ich bin mir nicht sicher, was ich sonst noch versuchen soll. Irgendwelche Gedanken?
Aktualisieren
Es stellt sich heraus, dass Resharper den Verweis auf Microsoft.Owin.Host.SystemWeb entfernt hat, als ich ihn zum Entfernen nicht verwendeter Verweise verwendet habe.
quelle
Antworten:
Stellen Sie sicher, dass Sie das
Microsoft.Owin.Host.SystemWeb
Paket im Projekt installiert haben . Dieses Paket wird für die Starterkennung in von IIS gehosteten Anwendungen benötigt. Weitere Informationen finden Sie in diesem Artikel .quelle
Startup.Configuration(IAppBuilder)
?Wenn Sie ein Upgrade von einer älteren MVC-Version durchgeführt haben, stellen Sie sicher, dass Sie keine haben
in deinem
web.config
. Der Aufruf der Startlogik wird unterdrückt.Ändern Sie es stattdessen in
true
Mir ist klar, dass Sie dies bereits erwähnt haben, aber manchmal lesen Leute (wie ich) nicht die ganze Frage und springen einfach zu den Antworten ...
Irgendwo auf der Strecke - als ich auf MVC 5 upgegradet habe, wurde dies hinzugefügt und ich habe es bis heute nie gesehen.
quelle
Alternative Antwort auf das ursprünglich diskutierte Problem - Owin "feuert nicht". In meinem Fall habe ich stundenlang gedacht, dass es nicht ausgelöst wird, weil ich keinen Haltepunkt darin setzen kann.
Beim Debuggen des OWIN-Starts in Visual Studio
IIS Express - Wenn Sie "F5" ausführen, wird der OWIN-Startcode unterbrochen
IIS - Das Ausführen von "F5" wird erst unterbrochen, nachdem OWIN-Code (und global.asax-Code) geladen wurden. Wenn Sie eine Verbindung zu W3P.exe herstellen, können Sie darauf zugreifen.
quelle
Wenn Sie Probleme beim Debuggen des Codes in der
Startup
Klasse haben, hatte ich auch dieses Problem - oder ich dachte, ich hätte es getan. Der Code wurde ausgelöst, aber ich glaube, es passiert, bevor der Debugger angehängt wurde, sodass Sie keine Haltepunkte für den Code setzen und sehen können, was passiert.Sie können dies beweisen, indem Sie eine Ausnahme in der
Configuration
Methode derStartup
Klasse auslösen.quelle
DEBUGGING-TIPPS
Wenn das Debuggen nicht funktioniert, verwenden Sie IIS Express oder die folgende Methode für lokales IIS
Verwenden von lokalem IIS
Aus irgendeinem Grund ermöglicht diese Methode das Debuggen dieser Methode:
Extra Tipp
Vielleicht wird dadurch ein Cache geleert:
Fügen Sie in web.config das Attribut optimizeCompilations mit einem falschen Wert hinzu
<compilation debug = "true" ... optimizeCompilations = "false">
Führen Sie die Site aus
quelle
optimizeCompilations="false"
funktioniert für michIch hatte ein ähnliches Problem und das Löschen von temporären ASP.NET-Dateien hat es behoben. Hoffe das hilft jemandem.
quelle
Temporary ASP.NET Files
Ordnerinhalts wurde der Owin-Start aufgerufen.Ich hatte das gleiche Problem. Das Microsoft.Owin.Host.SystemWeb-Paket wurde installiert, aber während der Installation konnte NuGet die DLL aus irgendeinem Grund nicht als Referenz hinzufügen. Stellen Sie sicher, dass Ihr Projekt diese Referenz hat. Wenn nicht, können Sie versuchen, neu zu installieren:
Ich hatte einen Fehler wie unten bei der Neuinstallation, aber irgendwie hat es funktioniert:
quelle
In meinem Fall wurde der IIS-Anwendungspool nicht auf Version 4 festgelegt. Es war v2.
Der AppPool wurde auf v4 geändert und alles war in Ordnung.
quelle
Ich hatte das gleiche Problem, als ich Owin zu einem vorhandenen Webprojekt hinzufügte. Ich stellte schließlich fest, dass das Problem auf Folgendes in der Datei web.config zurückzuführen war.
Die Remove Assembly = "*" hat das Problem verursacht. Wenn ich diese Zeile entferne, wird der Owin-Startcode ausgeführt. Ich ändere es schließlich wie folgt und es hat perfekt funktioniert
quelle
In meinem Fall wird der Ausgabepfad meiner Website von jemandem geändert, der IIS Express lädt OWIN sogar nicht und die Setup-Klasse wird natürlich nicht getroffen. Nachdem ich den Ausgabepfad auf "bin \" gesetzt habe, funktioniert es gut.
quelle
In meinem Fall ist dieses Microsoft.Owin.Host.SystemWeb-Paket im Projekt vorhanden.
Im Folgenden sind jedoch zwei Tags in web.config nicht vorhanden.
Nach dem Hinzufügen funktioniert es reibungslos.
quelle
In meinem Fall hatte meine web.config
Um es zu zwingen, auf Owin zurückzugreifen, musste es so sein
quelle
Ich habe mit vielen Vorschlägen in diesem Beitrag herumgespielt.
Ich hatte folgendes, konnte aber immer noch nicht auf einem Haltepunkt landen. Das Auslösen einer Ausnahme bewies, dass der Code eingegeben wurde.
Aus Verzweiflung habe ich mir schließlich die Projekte-> Eigenschaften angesehen und dann im Abschnitt WEB auch das Kontrollkästchen NATIVE CODE aktiviert (ASP.NET sollte bereits aktiviert sein).
Das hat es endlich für mich behoben.
Hinweis: Ich verwende Visual Studio 2017 Professional.
quelle
Ich bin nicht sicher, ob dies noch jemandem helfen wird, aber ich habe alle oben genannten Lösungen (und einige andere Beiträge) ohne Erfolg durchgeführt.
Was das Problem an meinem Ende behoben hat, war, einen Backslash an das Ende des RedirectUri-Werts in der web.config zu setzen (verrückt, ich weiß!). RedirectUri ist ein Parameter in UseOpenIdConnectAuthentication.
Also statt:
Mach das:
Außerdem wurde die Antwort-URL in den Azure App-Einstellungen aktualisiert.
Dadurch wurde der Start irgendwie wie erwartet ausgeführt (wahrscheinlich wurde ein Cache geleert), und die Haltepunkte werden jetzt ausgelöst.
Zu Ihrer Information. Ich habe meinen Code von hier aus modelliert: https://github.com/microsoftgraph/aspnet-connect-sample
quelle
Nachdem ich eine Klassenbibliothek in ein Webanwendungsprojekt konvertiert hatte , stieß ich darauf und wurde hartnäckig. Es stellte sich heraus, dass ich in meiner
.csProj
Akte Folgendes hatte:OutputPath
auf einfach zu ändernbin\
.quelle
Für mich war es, weil sie nicht im gleichen Namespace sind. Nachdem ich meinen AppStart aus "project.Startup.AppStart" entfernt und sowohl Startup.cs als auch Startup.Auth.cs mit dem Namespace "project.Startup" belassen hatte, funktionierte alles wieder einwandfrei.
Ich hoffe es hilft!
quelle
Wenn dieses Problem beim IIS-Hosting auftritt, jedoch nicht beim F5-Debugging, erstellen Sie eine neue Anwendung in IIS.
Das hat es für mich behoben. (Windows 10) Am Ende habe ich die "schlechte" IIS-Anwendung gelöscht und eine identische mit demselben Namen neu erstellt.
quelle
Ich denke, was einige Leute oben versucht haben, ist, dass Sie, wenn Sie Ihren OWIN-Server programmgesteuert zum Leben erwecken möchten, so etwas nennen würden:
Sobald Sie diesen Aufruf getätigt haben, wird der Aufruf von StartupMethod () im Debugger ausgelöst
quelle
Ich fand den folgenden Artikel sehr hilfreich:
https://weblog.west-wind.com/posts/2015/Apr/29/Adding-minimal-OWIN-Identity-Authentication-to-an-Existing-ASPNET-MVC-Application#MinimalCodeSummary
In meinem Fall musste ich Folgendes festlegen, bevor die Owin-Authentifizierung anstelle der Windows-Authentifizierung funktioniert:
quelle
Das hat bei mir funktioniert:
quelle
Fügen Sie zuerst die OWIN-Authentifizierungsklasse hinzu und aktivieren Sie dann OWIN: AutomaticAppStartupFügen Sie zuerst Authentifizierungsklasse hinzu Schlüssel in Ihrer web.config wie Jetzt wird es feuern
quelle