Le fichier de configuration par défaut utilisé par Le serveur Kestrel est le hosting.json
. Le nom a été changé plusieurs fois dans différentes versions bêta. Si vous utilisez maintenant project.json
avec la section "command"
suivante
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
}
puis lors du démarrage du serveur à partir de la ligne de commande par
dnx web
le fichier hosting.json
sera lu. Le fichier
{
"server.urls": "http://0.0.0.0:5000"
}
configurera le serveur pour écouter 5000 sur chaque adresse IP4. La configuration
{
"server.urls": "http://::5000;http://0.0.0.0:5000"
}
informera à écouter 5000 à la fois IP4 et adresse IP6.
On peut spécifier d'autres fichiers de configuration en utilisant la variable d'environnement ASPNET_ENV
ou en utilisant --config myconfig1.json
(ou config=myconfig1.json
). Par exemple, vous pouvez utiliser
SET ASPNET_ENV=Development
et de créer un fichier hosting.Development.json
avec une configuration spécifique. Vous pouvez également utiliser project.json
avec
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
"webProd": "Microsoft.AspNet.Server.Kestrel --config prod.json"
}
et démarrer le serveur par l'utilisation
dnx webProd
Je dois rappeler en outre qu'il pourrait être nécessaire que vous permettre d'écouter plus et pour vous inscrire (pour commencer dnx web
) .C'est nécessaire à cause du pare-feu et de la sécurité locale d'écoute des nouveaux ports TCP/HTTP. Quelque chose comme ci-dessous devrait faire local et l'écoute enregistrement de 5000 ports pour tout le monde (IPv4 et IPv6):
netsh http add iplisten ipaddress=0.0.0.0:5000
netsh http add iplisten ipaddress=::5000
netsh http add urlacl url=http://+:5000/ user=\Everyone
Pour être plus sûr, vous pouvez ajuster la configuration ci-dessus pour accorder des droits minimaux.
MISE À JOUR: Merci @BlaneBunderson. On peut utiliser * au lieu d'adresse IP (comme http://*:5000
) pour écouter adresses IP4 et IP6 à partir de n'importe quelle interface. Il faut être soigneusement et ne pas utiliser http://*:5000;http://::5000
, http://::5000;http://*:5000
, http://*:5000;http://0.0.0.0:5000
ou http://*:5000;http://0.0.0.0:5000
parce qu'il faudra pour vous inscrire IP6 adresse ::
ou l'adresse IP4 0.0.0.0
deux fois.
Correspond à the announcement
Techniquement, tout nom d'hôte qui ne sont pas « localhost » ou IPv4 valide ou adresse IPv6 causeront Kestrel se lier à toutes les interfaces réseau.
Je pense que le comportement pourrait être modifié dans le futur. Ainsi, je recommanderais d'utiliser uniquement les formulaires *:5000
, 0.0.0.0:5000
et ::5000
pour l'enregistrement de n'importe quelle adresse informatique. ASP2NET Core RC2 modifie (voir the announcement) le comportement de chargement des valeurs par défaut. On doit faire des changements dans le Main
pour charger les paramètres de hosting.json
et les paramètres de ligne de commande. Ci-dessous un exemple de l'utilisation
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", optional: true)
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.AddCommandLine(args)
.Build();
var host = new WebHostBuilder()
.UseUrls("http://*:1000", "https://*:1234", "http://0.0.0.0:5000")
.UseEnvironment("Development")
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
L'utilisation de code ci-dessus trois liaisons: "http://*:1000"
, "https://*:1234"
, "http://0.0.0.0:5000"
par défaut au lieu de l'utilisation du port par défaut 5000 par défaut (pour être exact l'utilisation de http://localhost:5000
). L'appel de .UseConfiguration(config)
est effectué après.UseUrls
. Ainsi, la configuration chargée à partir de hosting.json
ou la ligne de commande remplace les options par défaut. Si l'on supprime la ligne .SetBasePath(Directory.GetCurrentDirectory())
, le hosting.json
sera chargé à partir du même répertoire où la DLL d'application sera compilée (par exemple bin\Debug\netcoreapp1.0
).
On peut utiliser l'exécution comme
dotnet.exe run --server.urls=http://0.0.0.0:5000
pour remplacer les paramètres par défaut (de UseUrls
) et les paramètres de "server.urls"
propriété de hosting.json
si elle est existe.
De la même façon, on pourrait remplacer les paramètres ULR en définissant la variable d'environnement
set ASPNETCORE_SERVER.URLS=http://localhost:12541/
alors le démarrage par défaut de l'application à l'aide dotnet.exe run
utilisera http://localhost:12541/
pour la liaison.
Vous pouvez trouver here un exemple de l'utilisation de la liaison HTTPS.
double possible de [ASP.NET 5 Kestrel se connecter dans le réseau local] (http://stackoverflow.com/questions/33975949/asp-net-5-kestrel-connect-within-lan) –
Eh bien, la deuxième réponse à la question liée fait référence au format JSON. Ce n'est pas utile pour vous non plus? –
@chuex J'ai essayé cela, et initialement, il s'est écrasé sur le serveur Web au démarrage. Pas certain de pourquoi. Puis j'ai fait 'dnu restore', suivi de' dnu build' et ensuite 'dnx web' a correctement démarré le serveur web. Je ne sais pas pourquoi cela se passe, mais au moins je suis capable de le faire fonctionner. Il y a certainement un bug qui doit être corrigé avant la version finale. Pour l'instant, c'est la solution de contournement. – AngryHacker