【发布时间】:2021-06-09 12:26:11
【问题描述】:
问题详情 我有一个带有简单 Database-CRUD(创建、读取、更新、删除)示例的 Blazor 项目。当我在 Visual Studio 中运行它时它可以正常工作,但如果我发布它,程序就会出错。
项目详情 IDE 是 Visual Studio 2019。项目是 Blazor Webassembly。我尝试了 .NET CORE 3.1 和 .NET 5.0。数据库是 SQL Server 2019。用于发布的 IIS。
代码详情 数据库访问正在使用映射 (Scaffold-DbContext)。我使用掘金“Microsoft.EntityFrameworkCore.Tools”和“Microsoft.EntityFrameworkCore.SqlServer”。
这是读取命令:
using var httpResponse = await Http.GetAsync("/api/DataLrs/Index");
这是我用来获取更多错误细节的读取命令-sn-p:
using var httpResponse = await Http.GetAsync("/api/DataLrs/Index");
if (!httpResponse.IsSuccessStatusCode)
{
// set error message for display, log to console and return
errorMessage = httpResponse.ReasonPhrase;
Console.WriteLine($"There was an error! {errorMessage}");
return;
}
// convert http response data to UsersResponse object
dataLrsList = await httpResponse.Content.ReadFromJsonAsync<DataLrs[]>();
错误详情 当我使用 IIS 发布项目并尝试执行相同的命令时,我在浏览器中收到以下错误: 内部服务器错误 System.Net.Http.HttpRequestException:net_http_message_not_success_statuscode,500
解决方案尝试详情 如前所述,当我在 Visual Studio 中运行它时,它可以正常工作。我已经用谷歌搜索并尝试了一些东西,但没有任何效果。 如何获得更好的错误描述? 有人熟悉这个问题吗? 我意识到很多人都有相同/相似的问题,但我找不到明确的解决方案 谢谢!
【问题讨论】:
-
您似乎正在使用 EF Core,那么您是否已将数据库内容迁移到已发布的网络服务器上?在本地,数据库通过包管理器控制台进行初始化和更新,但必须将更改迁移到实时 SQL 服务器。我们可能还需要更多信息,例如:您使用的是 localDB 吗?你的连接字符串是什么;你的方法“/api/DataLrs/Index”怎么样?等
标签: c# blazor-webassembly