await Task.Factory.StartNew 返回的任务,内部的异步任务还未执行完成,Task就返回运行完成的问题,实际上这个方法返回的是一个Task<Task>类型,我们等待的是外层的任务,如果需要等待包装里面的任务完成,就要像答案中提到的 必须使用Unwrap扩展方法
分享nginx 代理的几个关键参数,
server {
}
asp.net core 中按照如下设置才能正确获取到浏览器端的域名及端口。
services.Configure<ForwardedHeadersOptions>(m =>
{
m.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
m.ForwardLimit = null;
m.KnownNetworks.Clear();
m.KnownProxies.Clear();
});
然后asp.net core 中通过 HttpContext.Connection.RemoteIpAddress?.MapToIPv4()?.ToString() 可以获取到浏览器端访问的服务器IP地址。
asp.net core 里面如何在站点启动后获取站点的Url地址。
IServer server; 需要注意的是必须要将该代码放到 Startup 的Configure方法中执行。
var addresses = server.Features.Get().Addresses;