我有一个 Web API 项目和一个 Blazor Wasm 项目,我想使用相同的端口从该 Web API 项目托管它们。但我无法让它发挥作用。 当我启动 Web api 项目时,它会旋转,但 blazor 应用程序不会。 我已经配置了启动设置,确保端口匹配,但我无法使其工作。我考虑过从 wasm 托管模型更改为服务器托管模型。 如果您需要更多信息,请告诉我。
在 Web APi 项目中启动设置:
"DEV": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
"launchUrl": "http://localhost:5001",
"applicationUrl": "http://localhost:5001",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
Blazor 项目中的启动设置
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:5001",
"sslPort": 0
}
},
"profiles": {
"BlazorServerClient": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5001",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
这是我尝试使用 Blazor Server 时的情况,但启动设置在我的 wasm 项目中是相同的
如果有其他(更好)的选择,我愿意接受建议,目标是使用同一端口从一个点托管 api 和 blazor 应用程序。
这是一个示例。
1.将您的 WebAssembly 应用程序发布到文件夹。
2.找到您发布的文件,即
BlazorApp3\bin\Release\net7.0\browser-wasm\publish
,然后复制wwwroot文件。将 WebApi 应用程序中的 wwwroot 文件(如果不存在,请创建一个)替换为发布中的 wwwroot 。
3.下载nudget包
Microsoft.AspNetCore.Components.WebAssembly.Server
并放入您的WebApi程序.cs中:
...
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.UseStaticFiles();
app.UseBlazorFrameworkFiles();
app.UseRouting();
app.MapFallbackToFile("index.html");
app.Run();
4.请勿在两个应用程序的launchSettings.json中设置在同一端口上运行。
5.启动WebApi应用程序,当您运行到根url时,Blazor将启动,您可以看到