【问题标题】:Pass argument to main method when using MVC Core使用 MVC Core 时将参数传递给 main 方法
【发布时间】:2019-07-11 08:00:43
【问题描述】:

假设我有一些来自 ASP.NET MVC Core 应用程序的类似代码:

public static void Main(string[] args)
{
    Console.Title = "IdentityServerWithAspNetIdentity";

    var seed = args.Any(x => x == "/seed");
    if (seed) args = args.Except(new[] { "/seed" }).ToArray();

    var host = BuildWebHost(args);

    if (seed)
    {
        SeedData.EnsureSeedData(host.Services);
        return;
    }

    host.Run();
}

如何将“/seed”参数传递给此方法(为数据播种)?到目前为止,我已经尝试过:

1) 这个:

没有参数传递给 Main。

2) 看过这里(以及其他地方):

Pass command-line arguments to Startup class in ASP Core

【问题讨论】:

  • @Liam 这是关于在配置中使用命令行参数。 OP在问为什么没有参数开始。不足为奇,因为网站不是从命令行启动的
  • @w0051977 您正在启动 IIS Express,而不是应用程序。您的调试设置显示“以/seed 作为参数启动 IIS Express”
  • @Panagiotis Kanavos,当我在 Visual Studio 中开始调试时,肯定会调用 main - 我添加了一个断点来检查。
  • @w0051977 是的,但是您将参数传递给 IIS,而不是应用程序。您正在启动 IIS Express,然后它会启动应用程序。您是否尝试过更改 Launch 设置?
  • @Panagiotis Kanavos,非常感谢。将“启动”更改为“项目”解决了它。请发布答案,以便我给予信任。 +1 表示:“您正在启动 IIS Express,而不是应用程序”

标签: c# .net-core asp.net-core-mvc


【解决方案1】:

您需要将参数括在引号中,例如“/seed”

【讨论】:

    猜你喜欢
    • 2014-04-20
    • 1970-01-01
    • 2012-03-03
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 2017-06-14
    相关资源
    最近更新 更多