Kestrel सर्वर द्वारा उपयोग की जाने वाली डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल है hosting.json। अलग-अलग बीटा संस्करणों में कई बार नाम बदला गया था। यदि आप अब project.jsonनिम्न "command"अनुभाग के साथ उपयोग करते हैं
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
}
तब कमांड लाइन से सर्वर शुरू करने के दौरान
dnx web
फ़ाइल hosting.jsonपढ़ी जाएगी। फ़ाइल
{
"server.urls": "http://0.0.0.0:5000"
}
प्रत्येक IP4 पते पर 5000 सुनने के लिए सर्वर को कॉन्फ़िगर करेगा। विन्यास
{
"server.urls": "http://::5000;http://0.0.0.0:5000"
}
IP4 और IP6 पते पर 5000 सुनने के लिए सूचित करेगा।
एक उपयोग ASPNET_ENVपरिवेश चर या --config myconfig1.json(या config=myconfig1.json) के उपयोग से वैकल्पिक कॉन्फ़िगरेशन फ़ाइलों को निर्दिष्ट कर सकता है । उदाहरण के लिए आप उपयोग कर सकते हैं
SET ASPNET_ENV=Development
और hosting.Development.jsonविशिष्ट विन्यास के साथ फाइल बनाने के लिए । वैकल्पिक रूप से आप के project.jsonसाथ उपयोग कर सकते हैं
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
"webProd": "Microsoft.AspNet.Server.Kestrel --config prod.json"
}
और सर्वर का उपयोग शुरू करें
dnx webProd
मुझे अतिरिक्त रूप से याद दिलाना होगा कि यह आवश्यक हो सकता है कि आप अतिरिक्त सुनने और पंजीकरण करने (शुरू करने dnx web) की अनुमति दें । फ़ायरवॉल और नए टीसीपी / HTTP बंदरगाहों को सुनने की स्थानीय सुरक्षा के कारण इसकी आवश्यकता है। नीचे कुछ ऐसा होना चाहिए जो स्थानीय पंजीकरण और हर किसी के लिए 5000 पोर्ट (IPv4 और 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
अधिक सुरक्षित होने के लिए आप न्यूनतम अधिकार देने के लिए उपरोक्त कॉन्फ़िगरेशन को समायोजित कर सकते हैं।
अद्यतन: धन्यवाद @BlaneBunderson। किसी भी इंटरफ़ेस से किसी भी IP4 और IP6 पते http://*:5000पर सुनने के लिए IP पते (जैसे ) के बजाय * का उपयोग कर सकते हैं । एक ध्यान से होना चाहिए और इन का उपयोग नहीं करना चाहिए
http://*:5000;http://::5000
http://::5000;http://*:5000
http://*:5000;http://0.0.0.0:5000
http://*:5000;http://0.0.0.0:5000
क्योंकि इसे दो बार IP6 एड्रेस ::या IP4 एड्रेस रजिस्टर करना होगा ।0.0.0.0
घोषणा के अनुरूप है
तकनीकी रूप से, कोई भी होस्टनाम जो "लोकलहोस्ट" या एक मान्य IPv4 या IPv6 पता नहीं है, Kestrel को सभी नेटवर्क इंटरफेस से बाँध देगा।
मुझे लगता है कि भविष्य में व्यवहार को बदला जा सकता है। इस प्रकार मैं केवल उपयोग करने की सलाह दूंगा *:5000, 0.0.0.0:5000और ::5000किसी भी आईटी पते के पंजीकरण के लिए फार्म।
अद्यतन 2: ASP.NET कोर RC2 परिवर्तन ( घोषणा देखें ) चूक को लोड करने का व्यवहार। Mainसे hosting.jsonऔर कमांड लाइन के मापदंडों को लोड करने के लिए बदलाव करना होगा। नीचे उपयोग का एक उदाहरण है
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();
}
उपरोक्त कोड उपयोग तीन बाइंडिंग: "http://*:1000", "https://*:1234", "http://0.0.0.0:5000"डिफ़ॉल्ट रूप से डिफ़ॉल्ट पोर्ट 5000 उपयोग के बजाय डिफ़ॉल्ट रूप से (सटीक के उपयोग होने के लिए http://localhost:5000)। के बाद कॉल किया .UseConfiguration(config)जाता है । इस प्रकार या कमांड लाइन से लोड किया गया कॉन्फ़िगरेशन डिफ़ॉल्ट विकल्पों को अधिलेखित कर देता है। यदि एक हटाने की रेखा तब उसी निर्देशिका से लोड की जाएगी जहां आवेदन dll संकलित किया जाएगा (उदाहरण के लिए )। .UseUrlshosting.json.SetBasePath(Directory.GetCurrentDirectory())hosting.jsonbin\Debug\netcoreapp1.0
जैसे निष्पादन का उपयोग कर सकते हैं
dotnet.exe run --server.urls=http:
यदि यह मौजूद है तो डिफ़ॉल्ट सेटिंग्स (से UseUrls) और "server.urls"संपत्ति से सेटिंग को अधिलेखित करें hosting.json।
उसी तरह से एक पर्यावरण चर सेट करके ULR सेटिंग्स को अधिलेखित कर सकता है
set ASPNETCORE_SERVER.URLS=http:
तब उपयोग करने वाले एप्लिकेशन की डिफ़ॉल्ट शुरुआत बाध्यकारी के लिए उपयोग dotnet.exe runकरेगी http://localhost:12541/।
आप यहां HTTPS बाइंडिंग के उपयोग का एक उदाहरण पा सकते हैं ।
REMARK: वातावरण चर के नाम से बदल दिया गया है ASPNETCORE_SERVER.URLSकरने के लिए ASPNETCORE_URLSASP.NET के बाद के संस्करणों में (देखें यहाँ ASP.NET कोर 3.1 के प्रलेखन)।