相关疑难解决方法(0)

如何在ASP.NET MVC中获取我的webapp基本URL?

如何快速确定ASP.NET MVC应用程序的根URL?即,如果IIS设置为在http://example.com/foo/bar上提供我的应用程序,那么我希望能够以可靠的方式获取该URL,而不涉及从当前URL获取当前URL请求并以一些脆弱的方式将其砍掉,如果我重新路由我的行动就会中断.

我需要基本URL的原因是此Web应用程序调用另一个需要root用户来调用Web应用程序以进行回调.

.net asp.net iis asp.net-mvc

290
推荐指数
10
解决办法
28万
查看次数

如何从 Asp.NET Core 3.1 Startup 类访问 launchSettings.json 中的 `applicationUrl` 属性?

我目前正在创建一个 Asp.NET Core 3.1 API 应用程序。在其中,我有一个launchSettings.json如下所示:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:61392",
      "sslPort": 44308
    }
  },
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "weatherforecast",
      "environmentVariables": {
        "Key": "Value",
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "Application.API": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "weatherforecast",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "https://localhost:5001;http://localhost:5000"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

特别是,我对获取applicationUrl此文件中定义的值很感兴趣。不幸的是,除了通过 JSON 序列化直接加载文件并探测那里的值之外,我没有看到任何明显的方法来访问它们。

因此,我正在寻找更优雅的解决方案。有没有办法从Startup.Configure和/或Startup.ConfigureServices方法中访问这些值?

我在想类似的事情:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true, …
Run Code Online (Sandbox Code Playgroud)

c# environment configuration json asp.net-core

9
推荐指数
2
解决办法
7488
查看次数

.NET Core 3.1/IHostBuilder 的 UseUrls 等效项

以前,使用 .NET Core 2.2,我可以添加UseUrls到我的Program.cs文件中以设置 Web 服务器将在其上运行的 URL:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseUrls("http://localhost:5100");
Run Code Online (Sandbox Code Playgroud)

但是,在 .NET Core 3.1 中,Program.cs更改了默认格式:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
Run Code Online (Sandbox Code Playgroud)

我尝试UseUrls以与 .NET Core 2.2 相同的方式添加它,但它说:

“IHostBuilder”不包含“UseUrls”的定义,最佳扩展方法重载“HostingAbstractionsWebHostBuilderExtensions.UseUrls(IWebHostBuilder, params string[])”需要“IWebHostBuilder”类型的接收器

如何设置服务器的 URL 以使用 .NET Core 3.1(使用 .NET Core 3.1IHostBuilder代替IWebHostBuilder)?

c# asp.net-core asp.net-core-3.1

7
推荐指数
1
解决办法
7405
查看次数

在Startup.cs的Configure中获取域名或主机名和端口

我需要帮助来获取我的应用程序的主机/域名和端口。

到目前为止,这是我的Configure方法中的示例代码Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    var url = ""; // something that will get the current host/domain and port of the running applicaiton.

    RecurringJob.AddOrUpdate<ISomething>(i=>i.SomethingToExecute(url), Cron.Daily);
}
Run Code Online (Sandbox Code Playgroud)

因为我需要将url字符串传递给我的SomethingToExecute方法

public class Something : ISomething 
{
    public void SomethingToExecute(string url){
        ... 
        Debug.WriteLine(url)
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-core asp.net-core-2.0 asp.net-core-2.1

6
推荐指数
1
解决办法
9107
查看次数

在 ASP.Net Core 中获取基本 URL

我最近刚刚从 ASP.NET MVC 切换到使用 .Core 2,但我不知道如何在 Core 中获取当前 URL。我可以使用以前的 asp.net 版本中的 Request 轻松获得它,但由于这在 .Net Core 中不再有效,我不知所措。

到目前为止,我无法从我的谷歌搜索中找到任何方法。

任何帮助表示赞赏。谢谢!

c# asp.net asp.net-core

4
推荐指数
2
解决办法
1万
查看次数