/ / Net.Core एप्लिकेशन के लिए पोर्ट सेट नहीं कर सकता है। सेटिंग्स। जेएसओएन - जेसन, एएसपीनेट-कोर

NetSCore एप्लिकेशन के लिए पोर्ट सेट नहीं कर सकता है। सेटिंग्स। जेएसओएन - जेसन, एएसपीनेट-कोर

मैंने संपादित किया है launchSettings.JSON फ़ाइल और इस तरह बंदरगाह बदल दिया।

"Gdb.Blopp": {
"commandName": "Project",
"launchBrowser": false,
"launchUrl": "http://localhost:4000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}

यह अभी भी बंदरगाह 5000 पर शुरू होता है, हालांकि। क्या यह सेटिंग सभी को नजरअंदाज कर रही है या क्या मुझे कुछ और याद आ रहा है?

उत्तर:

उत्तर № 1 के लिए 4

The launchSettings.json केवल Visual Studio द्वारा है, जब आप f5/Ctr f5 दबाते है और प्रारंभ बटन के आगे पुल-डाउन मेनू से विकल्प प्रदान करता है ।

यहां छवि विवरण दर्ज करें

इसके अलावा आप shouldn "टी सीधे संपादित करें कि launcherSettings.json फ़ाइल और इसके बजाय सामग्री परिवर्तित करने के लिए प्रोजेक्ट गुण का उपयोग करें ।

इस के लिए एक कारण यह है कि यदि आप इसे प्रोजेक्ट गुणों के माध्यम से परिवर्तित करें, Visual Studio भी IIS एक्सप्रेस फ़ाइलें संपादित करेगा (में स्थित .vs/config/applicationhost.config आपके समाधान का फ़ोल्डर) ।

kestrel उपयोग करता है, तो पोर्ट परिवर्तित करने के लिए चाहते हैं, तो .UseUrls("http://0.0.0.0:4000") (यह या तो से प्राप्त करें appsettings.json या hosting.json) में Program.cs.

अगर आप डॉन ' t hardcoded का इस्तेमाल करना चाहते हैं, तो आप भी कुछ इस तरह कर सकते हैं

बनाएं एक hosting.json:

{
"server": "Microsoft.AspNetCore.Server.Kestrel",
"server.urls": "http://localhost:4000"
}

Program.cs

public class Program
{
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddJsonFile("hosting.json", optional: false)
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.Build();

var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();

host.Run();
}
}

तुम भी कर सकते है कि via commandline (AddCommandLine कॉल यहां महत्वपूर्ण है, से Microsoft.Extensions.Configuration.CommandLine" पैकेज) ।

var config = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();

var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();

host.Run();

तो इसे माध्यम से चलाने dotnet run server.urls=http://0.0.0.0:4000.

जब आप चलाएँ IIS/IISExpress kestrel पोर्ट द्वारा निर्धारित किया जाएगा UseIISIntegration().


जवाब के लिए 0 № 2

के बाद से .net कोर २.० आप डॉन "टी बनाए रखने के लिए है hosting.json या अनुप्रयोग स्टार्टअप अब संशोधित करें । वहाँ निर्मित app बंदरगाह की स्थापना के लिए समर्थन में है, यहाँ समझाया: https://stackoverflow.com/a/49000939/606007