5

J'essaie d'héberger un nouveau projet ASP.NET 5 WebAPI dans IIS et j'utilise le moteur d'exécution ASP.NET 5 RC 1. Le projet que j'utilise est le modèle standard généré pour un nouveau projet ASP.NET 5 WebAPI. (Aucun changement de code.)Hébergement de WebAPI ASP.NET 5 dans IIS à l'aide d'un répertoire/d'une application virtuel

J'ai réussi à publier le projet en utilisant la ligne de commande, et je peux obtenir que l'application fonctionne dans un nouveau site web en utilisant un port spécifique, tel que localhost: 12345. Par exemple, l'accès à localhost: 12345/api/values ​​renvoie les données values.json du modèle de projet. Toutefois, lorsque j'essaie d'utiliser un dossier d'application IIS pour le projet, j'obtiens une erreur 404. Retour au début | Envoyer des commentaires Résolution Résolution En d'autres termes, localhost: 12345/WebApi1/api/values ​​renvoie une erreur 404. Mais je peux voir Kestrel s'exécuter sur un port aléatoire dans l'Observateur d'événements, et si j'accède aux données sur ce port, je récupère le fichier values.json, donc je sais que Kestrel est en cours d'exécution.

Y a-t-il quelque chose de spécial à faire pour qu'un projet ASP.NET 5 WebAPI fonctionne dans un dossier d'application IIS sous un site Web? Remarque: si j'utilise --server.urls pour définir un port pour Kestrel, il s'exécute à la fois sur le port demandé et sur le port aléatoire enregistré dans l'Observateur d'événements. (Donc, il est en fait disponible chez Kestrel à partir de 2 URL, pas celle configurée par --server.urls.)

+2

Cochez cette case: http://stackoverflow.com/a/33900458/1184056 –

+0

Merci. Cela a effectivement résolu le problème d'application IIS, et cela fonctionne maintenant. – Jeff

Répondre

3

Le lien de Kiran Challa ci-dessus résout bien le problème. Mettez dans votre méthode Configurer dans Startup.cs

app.Map("/IISApplicationFolderName", (myAppPath) => this.ConfigureApp(myAppPath, env, loggerFactory)); 

où IISApplicationFolderName est le nom du dossier de l'application IIS que vous souhaitez héberger sous. Le reste du code de configuration passe à la nouvelle méthode ConfigureApp, puisque vous déléguez votre configuration à cette méthode.

Cela semble également être un correctif temporaire jusqu'à la libération d'ASP.NET 5 RC2.