Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 将ASP.NET核心MVC部署到Azure应用程序服务(Linux)时出现SQL连接字符串问题_Asp.net Mvc_Asp.net Core_Entity Framework Core_Azure Sql Database - Fatal编程技术网

Asp.net mvc 将ASP.NET核心MVC部署到Azure应用程序服务(Linux)时出现SQL连接字符串问题

Asp.net mvc 将ASP.NET核心MVC部署到Azure应用程序服务(Linux)时出现SQL连接字符串问题,asp.net-mvc,asp.net-core,entity-framework-core,azure-sql-database,Asp.net Mvc,Asp.net Core,Entity Framework Core,Azure Sql Database,我使用EF Core和SQL Server创建了一个简单的ASP.NET Core MVC应用程序。在Windows开发计算机上,它正在使用localdb。我正在尝试部署到Azure应用程序服务(Linux)。我已经创建了一个Azure SQL数据库。从VisualStudio2019部署时,我已将数据库设置为依赖项。在发布配置文件设置中,我为正在使用的数据库上下文选择了Azure SQL连接字符串。我还检查了EF迁移,部署时脚本成功地为应用程序创建了表。我可以连接到Azure SQL并查看表。

我使用EF Core和SQL Server创建了一个简单的ASP.NET Core MVC应用程序。在Windows开发计算机上,它正在使用localdb。我正在尝试部署到Azure应用程序服务(Linux)。我已经创建了一个Azure SQL数据库。从VisualStudio2019部署时,我已将数据库设置为依赖项。在发布配置文件设置中,我为正在使用的数据库上下文选择了Azure SQL连接字符串。我还检查了EF迁移,部署时脚本成功地为应用程序创建了表。我可以连接到Azure SQL并查看表。但是,当我运行部署的应用程序并尝试数据库操作时,我得到:PlatformNotSupportedException:LocalDB在此平台上不受支持

我可以从文档中看到设置连接字符串的各种方法,但我想知道Visual Studio 2019中的发布向导正在尝试做什么,以及为什么它不工作?我也不清楚密码存储在哪里。在发布配置文件中,密码似乎以纯文本形式出现在连接字符串中,这不好。我想知道如何把它用于生产

更新目前,我已通过遵循Linux教程中的步骤,使用Azure CLI并运行以下命令修复了此问题:

az webapp配置连接字符串集--资源组[myResourceGroup]--名称[app name]--设置MyDbConnection='[connection string]'--连接字符串类型SQLServer


我不确定这种方法的安全性,并计划进一步调查。

发布向导只是为您处理数据库创建/迁移,它不会修改您的项目,因为这不是1)它的目的,2)它无法为您做出配置决策(即使用应用程序设置、环境变量等)


您需要通过配置在生产中提供连接字符串,就像在开发中一样。由于您要部署到Azure应用程序服务,因此最符合逻辑的位置是Azure中的应用程序设置。这些将通过环境变量加载。只需指定开发中使用的同一密钥,并在其中指定生产数据库目标。

发布向导只为您处理数据库创建/迁移,它不会修改您的项目,因为1)这不是它的目的,2)它无法为您做出配置决策(即使用应用程序设置、环境变量等)


您需要通过配置在生产中提供连接字符串,就像在开发中一样。由于您正在部署到Azure应用程序服务,因此最符合逻辑的位置是Azure中的应用程序设置。这些设置将通过环境变量加载。只需指定开发中使用的同一密钥并指定p生产数据库目标在那里。

我确实想知道是否是这样,但在本教程中没有这样的步骤,它似乎能神奇地工作。我确实想知道是否是这样,但在本教程中没有这样的步骤,它似乎能神奇地工作。