标签: httpsys

如何在使用 Http.sys 和 URLPrefix 的同时配置 dotnet core 3 以提供 React SPA?

更改 URLPrefix 后,出现以下错误:

SPA 默认页面中间件无法返回默认页面“/index.html”,因为未找到它,并且没有其他中间件处理该请求。

因此需要一些东西来告诉 dotnet core 关于前缀,但我似乎无法找到正确的设置组合。

非常感谢帮助。

代码如下:

HostBuilder 设置为:

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseHttpSys(options =>
        {
            options.AllowSynchronousIO = false;
            options.Authentication.Schemes = AuthenticationSchemes.None;
            options.Authentication.AllowAnonymous = true;
            options.MaxConnections = null;
            options.MaxRequestBodySize = 30000000;
            options.UrlPrefixes.Add("http://localhost:5005/Product/Site");
        });
        webBuilder.UseStartup<Startup>();
    });
Run Code Online (Sandbox Code Playgroud)

配置服务:

public override void ConfigureServices(IServiceCollection services)
{
  services.AddRazorPages();

  services.AddSpaStaticFiles(configuration =>
  {
    configuration.RootPath = "ClientApp/build";
  });

  services.AddMvc();
  services.AddResponseCompression(opts =>
  {
    opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(
              new[] { "application/octet-stream" });
  });
}
Run Code Online (Sandbox Code Playgroud)

然后配置是:

      app.UseSpaStaticFiles();
      app.UseRouting();
      app.UseEndpoints
      (
        endpoints => …
Run Code Online (Sandbox Code Playgroud)

single-page-application .net-core httpsys

9
推荐指数
1
解决办法
842
查看次数

如何从program.cs中的appsettings读取UrlPrefixes - asp.net core 3.1

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseHttpSys(options =>
            {
                options.UrlPrefixes.Add("how to get url from appsettings");
            });
            webBuilder.UseStartup<Startup>();
        })
        //host as window service
        .UseWindowsService();
    }
Run Code Online (Sandbox Code Playgroud)

应用程序设置配置,

"HttpSysOptions": {
    "UrlPrefix": "http://localhost:8099/"
}
Run Code Online (Sandbox Code Playgroud)

看起来可以使用hostingContext.Configuration,但在 内无法使用UseHttpSys,该怎么办?谢谢!

c# asp.net-core httpsys

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