J'ai un problème avec l'obtention de l'adresse IP du client qui a envoyé une requête à une application ASP.NET 5 hébergée sur Azure WebApps.Déployer ASP.NET 5 sur Azure WebApps derrière IIS
Mon projet utilise ASP.NET 5 + MVC6 et s'exécute sur une exécution CLR complète (pas CoreCLR). J'ai cherché à travers le net pour la réponse, mais je n'ai trouvé aucune solution.
En utilisant sugggestion de Get the client's IP address J'ai essayé:
HttpContext.Connection.RemoteIpAddress
mais les propriétés de HttpContext.Connection sont toutes fausses ou nulle, donc pas de chance ici.
J'ai remarqué ce qui suit: lorsque j'exécute mon application via Visual Studio avec IIS Express, l'adresse IP de Connection.RemoteIpAddress
est disponible. La propriété est nulle lorsque je cours dnx web via la ligne de commande. Il semble que azure exécute mon application dans le on dnx, pas IIS.
Ma question est la suivante: Comment configurer et déployer projet Azure WebApps, il va courir derrière IIS et donc HttpContext.Connection aura rempli ses valeurs?
Ma configuration actuelle (extrait de project.json):
(...)
"compilationOptions": {
"emitEntryPoint": true
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel",
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnx451": { }
},
(...)
et la méthode Configurer des Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseIISPlatformHandler();
//rest of the method...
}
J'ai répondu à la première partie de la question (IIS/Kestrel). En ce qui concerne l'adresse IP du client, le package Microsoft.AspNet.IISPlatformHandler et le middleware UseIISPlatformHandler() sont supposés transmettre l'adresse IP du client conformément à https://github.com/aspnet/Templates/issues/189. Êtes-vous sûr de l'utiliser? –
Cela redirige l'adresse IP sur mon instance locale, mais pas sur le site Web Azure déployé. –