【发布时间】:2020-05-30 06:06:02
【问题描述】:
我目前正在尝试挂载使用 dotnet new react 创建的 .NET Core 3.1 MVC 应用程序。该应用程序在通过 Visual Studio Code 运行时运行良好。但是,当使用dotnet publish -c Release -r win81-x64 发布并在 IIS 8.5 中安装应用程序时,API 的路由停止工作,将所有请求发送到 React 页面。
目前我在Startup.cs 中的配置如下所示:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}");
});
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseReactDevelopmentServer(npmScript: "start");
}
});
}
我制作的测试控制器中的代码如下所示:
namespace Application.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase {
private readonly ILogger<TestController> _logger;
public TestController(ILogger<TestController> logger)
{
_logger = logger;
}
[HttpGet]
public async Task<ActionResult<string>> GetTest()
{
return "Test";
}
}
}
我还尝试创建一个新的 React 项目并安装它,这似乎确实有效。但是,Startup.cs 文件具有完全相同的配置,因此我在我的应用程序上找不到任何要修改的内容。
【问题讨论】:
-
the routes for the APIs stop working, sending all requests to the React page.你的意思是反应客户端应用程序运行良好,但是当你从浏览器地址栏向端点发出请求时,API 没有正确响应? -
@FeiHan React 应用可以运行,但是所有 API 响应都返回 React 页面而不是相应的 JSON 响应。
标签: asp.net-core-mvc asp.net-core-3.1