我正在创建一个在.net Core 2.0运行时运行的ASP.net Core 2.0应用程序,这两个应用程序目前都处于预览版本。但是,我无法弄清楚如何让Kestrel使用默认http://localhost:5000
监听网址以外的其他内容。
我可以在谷歌谈论server.urls
设置的大多数文档,即使在1.0预览中也似乎已被更改为urls
,但是不起作用(打开调试日志记录让Kestrel告诉我没有配置监听端点。)
许多文档还讨论了hosting.json
并且我无法使用默认的appsettings.json。但是,如果我比较加载新配置的推荐方法,这看起来与新WebHost.CreateDefaultBuilder
方法完全一样,除了它加载appsettings.json。
我目前还不了解appsettings.json和IConfigureOptions<T>
是如何相关的,所以我的麻烦可能源于对{{3}的缺乏了解实际上确实如此。
答案 0 :(得分:16)
我使用了这个
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseConfiguration(new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", optional: true)
.Build()
)
.UseStartup<Startup>()
.Build();
还有hosting.json
{ "urls": "http://*:5005;" }
答案 1 :(得分:2)
以前适用于我
WebHost.CreateDefaultBuilder(args)
.UseConfiguration( new ConfigurationBuilder().AddCommandLine(args).Build() )
.UseStartup<Startup>()
.Build();
然后
dotnet myapp.dll --urls "http://*:5060;"
答案 2 :(得分:1)
以上都不适合我。这个对我有用:
@PersistenceContext
private EntityManager entityManager;
public JournalDto findJournalReportData(){
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<JournalDto > query = builder.createQuery(JournalDto.class);
Root<JournalDto> dto = query.from(JournalDto.class);
Root<TxnBalanceEntity> txn = query.from(TxnBalanceEntity.class);
SetJoin<TxnBalanceEntity, SmsAccountEntity> o = txn.join(SmsAccountEntity.accountNo);
//..Rest of join statements
}
(将44306更改为您自己喜欢的端口)
可能会有很多帮助答案 3 :(得分:1)
要在appsettings.json中设置侦听URL,请添加“ Kestrel”部分:
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://localhost:5000"
}
}
}
参考:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2