Kestrel sunucusu tarafından kullanılan varsayılan yapılandırma dosyası hosting.json
. Ad, farklı beta sürümlerinde birçok kez değiştirildi. Şimdi project.json
aşağıdaki "command"
bölümle kullanıyorsanız
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
}
daha sonra sunucuyu komut satırından başlatırken
dnx web
dosya hosting.json
okunacaktır. Dosya
{
"server.urls": "http://0.0.0.0:5000"
}
sunucuyu her IP4 adresinde 5000 dinleyecek şekilde yapılandıracaktır. Konfigürasyon
{
"server.urls": "http://::5000;http://0.0.0.0:5000"
}
hem IP4 hem de IP6 adresinde 5000 dinlemesi için bilgi verecektir.
Kullanım ASPNET_ENV
ortamı değişkenine göre veya --config myconfig1.json
(veya config=myconfig1.json
) kullanımı ile alternatif yapılandırma dosyaları belirtilebilir . Örneğin kullanabilirsiniz
SET ASPNET_ENV=Development
ve hosting.Development.json
belirli yapılandırmaya sahip dosya oluşturmak için . Alternatif olarak project.json
ile kullanabilirsiniz
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
"webProd": "Microsoft.AspNet.Server.Kestrel --config prod.json"
}
ve kullanıma göre sunucuyu başlatın
dnx webProd
Ek olarak dinlemenize ve kaydolmanıza (başlamak için dnx web
) izin vermeniz gerekebileceğini hatırlatmalıyım . Güvenlik duvarı ve yeni TCP / HTTP bağlantı noktalarını dinlemenin yerel güvenliği nedeniyle gereklidir. Aşağıdaki gibi bir şey, herkes için 5000 bağlantı noktasının yerel olarak kaydedilmesini ve dinlenmesini sağlamalıdır (IPv4 ve 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
Daha güvenli olmak için, yukarıdaki yapılandırmayı minimum haklar verecek şekilde ayarlayabilirsiniz.
GÜNCELLENDİ: Teşekkürler @BlaneBunderson. Herhangi bir arayüzden herhangi bir IP4 ve IP6 adresini http://*:5000
dinlemek için IP adresi (gibi ) yerine * kullanılabilir . Dikkatli olmalı ve bunları kullanmamalı
http://*:5000;http://::5000
http://::5000;http://*:5000
http://*:5000;http://0.0.0.0:5000
http://*:5000;http://0.0.0.0:5000
çünkü IP6 adresini ::
veya IP4 adresini 0.0.0.0
iki kez kaydetmeyi gerektirecektir .
Duyuruya karşılık gelir
Teknik olarak, "localhost" olmayan herhangi bir ana bilgisayar adı veya geçerli bir IPv4 veya IPv6 adresi, Kestrel'in tüm ağ arabirimlerine bağlanmasına neden olur.
Gelecekte bu davranışın değiştirilebileceğini düşünüyorum. Böylece sadece kullanmayı öneriyoruz *:5000
, 0.0.0.0:5000
ve ::5000
herhangi bir IT adresi kayıt için oluştururlar.
GÜNCELLENMİŞ 2: ASP.NET Core RC2 , varsayılanları yükleme davranışını değiştirir ( duyuruya bakın ). Main
Ayarları hosting.json
ve komut satırı parametrelerini yüklemek için değişiklik yapmak gerekir . Aşağıda kullanımın bir örneği bulunmaktadır
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();
}
Yukarıdaki kod kullanımı üç bağlamaları: "http://*:1000"
, "https://*:1234"
, "http://0.0.0.0:5000"
yerine varsayılan olarak kullanım varsayılan bağlantı noktası 5000 varsayılan olarak (tam kullanımı olmak http://localhost:5000
). Çağrı .UseConfiguration(config)
yapılır sonra .UseUrls
. Bu nedenle, hosting.json
komut satırından veya komut satırından yüklenen yapılandırma varsayılan seçeneklerin üzerine yazılır. Bir .SetBasePath(Directory.GetCurrentDirectory())
satır kaldırma satırı ise hosting.json
, uygulama dll'sinin derleneceği aynı dizinden yüklenecektir (örneğin bin\Debug\netcoreapp1.0
).
Biri yürütme gibi kullanılabilir
dotnet.exe run --server.urls=http:
varsayılan ayarların (kimden UseUrls
) ve varsa "server.urls"
özelliğindeki ayarların üzerine yazmak için hosting.json
.
Aynı şekilde, ortam değişkenini ayarlayarak ULR ayarlarının üzerine yazılabilir.
set ASPNETCORE_SERVER.URLS=http:
ardından uygulamanın varsayılan başlangıcı bağlama için dotnet.exe run
kullanacaktır http://localhost:12541/
.
Burada HTTPS bağlama kullanımına bir örnek bulabilirsiniz .
AÇIKLAMA: ortam değişkeninin adı değiştirilir ASPNETCORE_SERVER.URLS
için ASPNETCORE_URLS
ASP.NET sonraki sürümlerinde (bkz burada ASP.NET Çekirdek 3.1 belgelerine).