目标:在运行ASP.NET Core 2.2 Web应用程序时尽快在浏览器中获取URL。
我尝试过的是Startup.cs
内部几乎所有类型的黑客,这些可以确保您可以使用DI来注册IHttpContextAccessor
以访问HttpContext
有些人会说使用
var url = HttpContext?.Request?.GetDisplayUrl();
您可以在Controller中使用它,但是如果进行定义,您会看到HttpContext来自Mvc等的ControllerBase。
似乎有几篇关于此的帖子,没有解决方案。
Invoke
方法,但是如何以及在何处等等? Current URL in ASPCore Middleware? 我看到程序使用.UseStartup<Startup>();
调用Startup.cs
是否有可能获得访问权限,以便能够终止GOAL以获取类似http://localhost:4444
的URL
我想要的一切...
var url = HttpContext?.Request?.GetDisplayUrl();
在类库/startup/program.cs中的.net核心时立即显示我的URL。cs将让我看到类似http://localhost:4444
的URL
答案 0 :(得分:1)
对于处理请求,您可以尝试ASP.NET Core Middleware。
一个简单的中间件,如下所示:
public class Startup
{
//rest code
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.Use((context,next) =>
{
var url = context.Request.GetDisplayUrl();
return next.Invoke();
});
//rest code
}
}
要使用GetDisplayUrl()
,请添加
using Microsoft.AspNetCore.Http.Extensions;