我自己想不出解决方案...对于以下任务!
我尝试从Visual Studio(Blazor Server(不是WebAssembly(部署未触及的Blazor模板,身份验证为ON(个人用户(。
如果我在我的 PC 上本地启动该应用程序,一切正常。我可以注册一个帐户登录等。
但是,如果我"发布"Blazor 应用并将其上传到我的托管端,则无法使用身份验证寄存器/登录等。 (托管在 interserver.net/ASP.NET 虚拟主机(使用 25 个 MSSQL 中的 0 个(/使用 plesk 进行配置(
我收到服务器状态 500 错误。
有几点要提。我将应用程序模板设置为使用"应用程序将存储用户内部"。
我几乎是数据库,SQL等的菜鸟。
我的想法是,问题是我在创建项目时就使用"应用商店用户内部"选项。真?
我是否需要还将使用模板(本地(自动创建的 SQLDatabase 发布到我的服务器? (是的,那么 ->如何?
我是否使用 appsetting.json 中的数据库连接字符串,并在服务器上创建与本地数据库同名的数据库?但是在我的主机商,如果我想添加一个SQL数据库,我必须创建一个用户和一个密码。在本地项目中,我不必输入用户或密码,那么该怎么做呢?
非常抱歉我缺乏知识。请分享你的知识,以帮助我找到一些平静,毕竟......
使用具有本地用户帐户的标识创建 Blazor 应用程序时,它默认使用实体框架和Microsoft SQL Server,特别是开发计算机上的 SQLexpress。如果您检查Startup.cs
您应该看到:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
由于您的托管服务提供 MySql,因此这不起作用,因此您需要替换它。从模板中删除 SqlServer 并在开发计算机上切换到使用 MySql 是有意义的,以便两者使用相同的代码。
在本地运行时,使用的连接字符串来自appsettings.json
。发布时,如果有一个名为appsettings.Production.json
的文件,则将改用此处的任何设置,因此您可以将连接字符串放入其中以连接到托管的 MySQL 数据库。
我不是设置MySQL的专家,所以我建议你看看".NET Core 3 - Blazor App and Security with Identity and MySql",这应该会有所帮助。