我有一个 3.1 版本的 ASP.NET CORE 项目。我正在使用 HTTP.SYS 来托管这个项目。wwwroot 文件夹中有一些静态文件正在此程序中提供。这是我的startup.cs的外观。
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddMvc().ConfigureApiBehaviorOptions(o =>
{
o.SuppressMapClientErrors = true;
o.SuppressModelStateInvalidFilter = true;
})
.AddNewtonsoftJson(o => o.SerializerSettings.DateParseHandling = DateParseHandling.DateTimeOffset)
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
services.Configure<HttpSysOptions>(options =>
{
options.UrlPrefixes.Add("http://localhost:44385/");
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy", builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
});
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseFileServer();
app.UseRouting();
app.UseCors(o => o.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Hello World");
});
});
}
}
我的program.cs看起来像这样:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseHttpSys();
webBuilder.UseStartup<Startup>();
}).UseWindowsService();
}
现在有了这段代码,我可以创建一个 Windows 服务并运行它,但是当我点击 url 时,我只会看到 Hello World 消息。服务运行时不显示静态页面。我假设我在这里做错了什么。这样做的正确方法是什么?