1

.net コア アプリケーションに問題があります。この問題は、ユーザー シークレットの json ファイルを読み取れないことです。アプリケーションは開発では問題なく動作しますが、ホスティング サーバーのリリース バージョンでアプリケーションのエラーが発生します。

以下のエラーコード

アプリケーション起動例外: System.ArgumentNullException: 値を null にすることはできません。パラメーター名: C:\Users\myComp\source\repos\myApplicationCore\myApplicationCore.WebUI\Startup の myApplicationCore.WebUI.Startup.ConfigureServices(IServiceCollection サービス) の System.Data.SqlClient.SqlConnectionStringBuilder.set_Password(文字列値) のパスワード。 cs:42 行目 --- 例外がスローされた前の場所からのスタック トレースの終わり --- Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection サービス) で Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices() でMicrosoft.AspNetCore.Hosting.Internal.WebHost.Initialize() --- 例外がスローされた前の場所からのスタック トレースの終わり --- Microsoft.AspNetCore.Hosting.Internal.WebHost で。BuildApplication() クリティカル: Microsoft.AspNetCore.Hosting.Internal.WebHost[6] アプリケーション起動例外 System.ArgumentNullException: 値を null にすることはできません。パラメーター名: C:\Users\myComp\source\repos\myApplicationCore\myApplicationCore.WebUI\Startup の myApplicationCore.WebUI.Startup.ConfigureServices(IServiceCollection サービス) の System.Data.SqlClient.SqlConnectionStringBuilder.set_Password(文字列値) のパスワード。 cs:42 行目 --- 例外がスローされた前の場所からのスタック トレースの終わり --- Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection サービス) で Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices() でMicrosoft.AspNetCore.Hosting.Internal.WebHost. http://127.0.0.1:25696アプリケーションを開始しました。Ctrl+C を押してシャットダウンします。アプリケーションをシャットダウンしています...

私の Startup.cs ファイル

public class Startup
{

    public IConfiguration Configuration;

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {
        var builder = new SqlConnectionStringBuilder(Configuration.GetConnectionString("DefaultConnection"));
        builder.Password = Configuration["DbPassword"];

        services.AddDbContext<ApplicationDbContext>(options => options.UseMySql(builder.ConnectionString,
            b =>
            {
                b.MigrationsAssembly("myApplicationCore.WebUI");
                b.ServerVersion(new Version(5, 6, 44), ServerType.MySql); // replace with your Server Version and Type
            }
            ));

        services.AddIdentity<ApplicationUser, IdentityRole>(opts => {
            opts.User.RequireUniqueEmail = true;
            opts.Password.RequiredLength = 3;
            opts.Password.RequireNonAlphanumeric = false;
            opts.Password.RequireLowercase = false;
            opts.Password.RequireUppercase = false;
        })
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

        services.AddTransient<IUnitOfWork, EfUnitOfWork>();
        services.AddTransient<IEmailSender, EmailSender>();
        services.Configure<AuthMessageSenderOptions>(Configuration);

        services.ConfigureApplicationCookie(options => options.LoginPath = "/Account/Sign");

        services.AddMvc().AddJsonOptions(options =>
        {
            options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
        }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

        services.AddSignalR();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStatusCodePages();
        app.UseStaticFiles();
        app.UseAuthentication();

        app.UseSignalR(routes =>
        {
            routes.MapHub<HubSignal>("/hubCon");
        });

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}"
                );

            routes.MapSpaFallbackRoute(
            name: "spa-fallback",
            templatePrefix: "Portal",
            defaults: new { controller = "Portal", action = "Index" });
        });

        SeedData.EnsurePopulated(app);
        SeedData.CreateRoles(app.ApplicationServices).Wait();
        SeedData.CreateIdentityUsers(app.ApplicationServices).Wait();

    }
}

これは私の Program.cs ファイルです

    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();

Web アドレスに入力すると、このエラーが表示されます。

アプリケーションの起動中にエラーが発生しました。.NET コア 4.6.27817.03 X86 v4.0.0.0 | Microsoft.AspNetCore.Hosting バージョン 2.2.0-rtm-35687 | Microsoft Windows 10.0.14393 | 助けが必要?

サーバーはsecret.jsonファイルを見つけることができないと思いますが、ファイルを見つける方法がわかりません。

どうすればこの問題を解決できますか?

助けてくれてありがとう。

4

1 に答える 1