2017-02-20 4 views
1

Ich habe mit dem folgende Problem für die letzten paar Tage zu kämpfen:Web API 2 - CORS - im Debug arbeiten, aber nicht in IIS Express

Wir haben ein Web-API-Projekt mit einer Implementierung CORS.

Wenn ich das Projekt lokal im Debug-Modus ausführen, funktioniert alles.

Das Problem tritt auf, wenn ich versuche, das Projekt auf dem lokalen IIS bereitzustellen, oder wenn ich das Debuggen in VS beenden. Sobald ich versuche, eine Anfrage ich folgende Fehlermeldung erhalten zu machen:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:82 ' is therefore not allowed access.

anoy mich zu fördern, wenn ich die API für unsere azurUmgebung bereitstellen, alles funktioniert und ich nicht mehr die Fehler.

Das ist mein startup.cs mit meiner CORS config:

public void Configuration(IAppBuilder app) 
{ 
    app.UseCors(buildCorsOptions()); 

    ConfigureAuth(app); 
} 

private static CorsOptions buildCorsOptions() 
{ 
    return new CorsOptions 
    { 
     PolicyProvider = new CorsPolicyProvider 
     { 
      PolicyResolver = context => 
      { 
       var corsPolicy = new CorsPolicy 
       { 
        AllowAnyHeader = true, 
        AllowAnyMethod = true, 
        SupportsCredentials = true 
       }; 

       //localhosts for debugging purposes 
       corsPolicy.Origins.Add("http://localhost"); 
       corsPolicy.Origins.Add("http://localhost:82"); 

       return Task.FromResult(corsPolicy); 
      } 
     } 
    }; 
} 

Jeder, der eine Idee hat, was ich fehlen könnte?

Antwort

0

Ich fand die Lösung!

Wir hatten einen Endpunkt, der eine Ausnahme zurückgab, die ausgeführt wurde, bevor CORS die Antwortheader ändern konnte.

Dies machte den Fehler wie ein CORS-Problem, aber es war wirklich nur eine interne Ausnahme in unserem Code.

Verwandte Themen