2017-02-20 1 views
1

J'ai été aux prises avec le problème suivant pour les deux derniers jours:API Web 2 - CORS - travaillant dans le débogage, mais pas dans IIS expriment

Nous avons un projet d'API Web avec une implémentation CORS.

Lorsque j'exécute le projet localement, en mode débogage, tout fonctionne.

Le problème se pose lorsque j'essaie de déployer le projet dans IIS local ou si j'arrête le débogage dans VS. Dès que je tente de faire une demande, je reçois l'erreur suivante:

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

Pour d'autres Anoy moi, quand je l'API pour déployer notre environnement d'azur, tout fonctionne et je n'obtiens plus l'erreur.

Ceci est mon startup.cs avec ma config CORS:

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); 
      } 
     } 
    }; 
} 

Toute personne qui a une idée de ce que je pourrais être absent?

Répondre

0

J'ai trouvé la solution!

Nous avions un point de terminaison renvoyant une exception qui était en cours d'exécution avant que CORS ait une chance de modifier les en-têtes de réponse. Cela a fait ressembler l'erreur à un problème CORS, mais c'était juste une exception interne dans notre code.