首页 > 解决方案 > 在 IIS 上使用 reactjs 应用程序部署 ASP.NET Core 后的空白页

问题描述

我将应用程序部署到我的 Windows 10 机器上的 IIS。但是当我在浏览器中打开应用程序时,页面保持空白。如果我在调试器中运行应用程序,一切正常。

该代码基本上是 VS 模板中未更改的代码。我刚刚添加了一些控制器和模型。.NET Core 托管包安装在计算机上。

Microsoft 文档在这种情况下没有帮助。

浏览器开发者工具控制台返回以下内容:

日志

我的 web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <location path="." inheritInChildApplications="false">
        <system.webServer>
            <handlers>
                <add name="aspNetCore" path="*" verb="*" 
                     modules="AspNetCoreModuleV2" resourceType="Unspecified" />
            </handlers>
            <aspNetCore processPath=".\ApplicationXYZ.exe" 
                stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" 
                hostingModel="inprocess" />
        </system.webServer>
    </location>
</configuration>

我检查了 Startup.cs。但它对我来说看起来不错:

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

    public IConfiguration Configuration { get; }

    public void ConfigureServices (IServiceCollection services)
    {
        services.AddControllersWithViews ();

        // In production, the React files will be served from this directory
        services.AddSpaStaticFiles (configuration =>
                 {
                      configuration.RootPath = "ClientApp/build";
                 });

        services.AddHttpContextAccessor ();
        services.Configure<DbConfig> (Configuration.GetSection ("DB"));
        services.AddTransient<IDbContext, DbContext> ();
    }

    public void Configure (IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment ())
        {
            app.UseDeveloperExceptionPage ();
        }
        else
        {
            app.UseExceptionHandler ("/Error");
            app.UseHsts ();
        }

        app.UseHttpsRedirection ();
        app.UseStaticFiles ();
        app.UseSpaStaticFiles ();

        app.UseRouting ();

        app.UseEndpoints (endpoints =>
            {
                 endpoints.MapControllerRoute (
                     name: "default",
                     pattern: "{controller=Home}/{action=Index}/{id?}");

                 // endpoints.MapFallbackToController ("Index", "Home");
            });

        app.UseSpa (spa =>
               {
                   spa.Options.SourcePath = "ClientApp";

                   if (env.IsDevelopment ())
                   {
                        spa.UseReactDevelopmentServer (npmScript: "start");
                   }
               });
    }
}

我将非常感谢能引导我走向正确方向的提示。

标签: c#reactjsasp.net-core.net-5asp.net-core-5.0

解决方案


推荐阅读