我正在开发 Blazor 服务器端,它从 API 获取所有数据;与 SQL Server 的唯一连接是对单个用户帐户使用身份验证。
它在开发环境中工作正常,但是当部署到 IIS 时,它在尝试访问托管在同一服务器上的数据库时挂起。
我无法得到确切的错误,因为抛出的警告说:
切换到开发环境显示详细信息 关于发生的错误。开发环境不应该 为已部署的应用程序启用。它可能会导致显示 从异常情况到最终用户的敏感信息。对于本地 调试,通过设置启用开发环境 ASPNETCORE_ENVIRONMENT 环境变量设置为开发和 重新启动应用程序。
我尝试将生产
ASPNETCORE_ENVIRONMENT
设置为 development
的任何内容 - 不幸的是,来自其他帖子的内容并非特定于 .NET 6 上的服务器端 Blazor - 不会显示真正的异常,并且我不断收到该警告。
除了用户名和密码之外,IIS 是否还需要任何其他权限才能从 Blazor 服务器端应用程序访问 SQL Server 数据库?
如何在 .NET 6 Blazor 服务器端应用程序上临时将
ASPNETCORE_ENVIRONMENT
设置为生产环境的“开发”?
最终发现问题是 Blazor 尝试从同一服务器访问 SQL,并将子域 sql.[mydomain].com 作为数据源。 开发人员环境可以从互联网访问它,但为了在本地访问它,我必须将条目 127.0.0.1 sql.[mydomain].com 添加到 C:\Windows\System32\drivers tc\host
无论如何,如果有人有任何解决方案来临时显示生产错误,我们将不胜感激
要临时显示生产中的错误,您可以将此行添加到主项目文件的
<PropertyGroup>
中:
<EnvironmentName>Development</EnvironmentName>
但请注意,您的生产环境将采用 appsettings.Development.json 文件中定义的设置。
希望这有帮助!