ASP.NET中的ASP.NET MVC应用程序与MySQL应用程序

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (77)

我有一个连接到MySQL数据库的ASP.NET MVC应用程序,它可以与我的本地MySQL服务器一起使用。我正在尝试使用他们的新功能将应用程序推向azure:用于Web Apps的MySQL应用程序

以前,我使用SQL服务器数据库在azure中测试了相同的应用程序,我得到了如下工作:

  1. 我在我的Azure门户中创建了一个SQL数据库,我得到了它的ADO.NET连接字符串,如下所述:https//azure.microsoft.com/en-us/documentation/articles/sql-database-develop-dotnet-simple /
  2. 我使用“发布”命令从Visual Studio发布了该应用程序。在其向导中,我能够设置应在运行时使用的DefaultConnection字符串。

我可以继续使用MySQL-in-app数据库吗?如果是这样,如何在发布步骤中设置连接字符串?我在这里找到了一个脚本的解释,但我不明白我应该在哪里运行它来获取连接字符串!

提问于
用户回答回答于

获取数据库连接字符串 ”部分用代码解释如何通过PHP中的MYSQLCONNSTR_localdb环境变量获取数据库连接字符串,如果您想获取MySQL In App中使用的本地MySQL数据库的连接字符串(预览)在C#中,您可以参考以下代码段。

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write(Environment.GetEnvironmentVariable("MYSQLCONNSTR_localdb").ToString());
}

结果

Database=localdb;Data Source=127.0.0.1:49497;User Id=azure;Password=6#vWHD_$

此外,据我所知,MySQL In App(预览版)使用我们的应用程序运行本地MySQL实例并从App服务计划共享资源,我们使用MySQL In App(预览版)进行开发和测试。如果您希望将应用程序迁移到生产以使用非本地MySQL实例,则可以在Azure门户(提供程序是ClearDB)中创建MySQL数据库并从Azure应用服务连接到该数据库

用户回答回答于

我写了一个小助手让这更容易:

https://github.com/kedzior-io/kedzior.io.ConnectionStringConverter

Startup.cs中

string connectionString = Environment.GetEnvironmentVariable("MYSQLCONNSTR_localdb");
        services.AddDbContext<ApplicationDbContext>(options =>  
            options.UseMySql(AzureMySQL.ToMySQLStandard(connectionString))
        );

您也可以在机器上设置环境变量:

Name: MYSQLCONNSTR_localdb
Value: Database=dotnetpwa;Data Source=127.0.0.1:3307;User Id=kedzior;Password=kedzior

这样,您可以在本地运行应用程序并将其发布到Azure,甚至无需知道MySQL In-App的连接字符串。

扫码关注云+社区

领取腾讯云代金券