首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用MySQL in-app的Azure中的ASP.NET MVC应用程序

使用MySQL in-app的Azure中的ASP.NET MVC应用程序
EN

Stack Overflow用户
提问于 2016-11-11 21:56:50
回答 3查看 2.7K关注 0票数 3

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

之前,我在azure中使用SQL服务器数据库测试了相同的应用程序,并按如下方式运行:

我在我的azure门户中创建了一个SQL数据库,并获得了它的ADO.NET连接字符串,如下所示:https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-dotnet-simple/

  • I使用Publish命令从Visual Studio发布了应用程序。在它的向导中,我能够设置应该在运行时使用的DefaultConnection字符串。

我可以对MySQL-in-app数据库进行类似的操作吗?如果是这样,如何获取要在发布步骤中设置的连接字符串?我找到了一个脚本here的解释,但是我不知道我应该在哪里运行它来获取连接字符串!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-14 19:21:13

Get the database connection string”一节用代码解释了如何在PHP中通过MYSQLCONNSTR_localdb环境变量获取数据库连接字符串,如果你想在C#中的应用程序(预览)中获取本地MySQL数据库中使用的MySQL连接字符串,可以参考以下代码片段。

代码语言:javascript
复制
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与我们的应用运行本地MySQL实例,并共享应用服务计划中的资源,我们使用应用(预览)中的MySQL进行开发和测试。如果你想要将应用程序迁移到生产环境以使用非本地MySQL实例,你可以create a MySQL database in the Azure portal (提供商是ClearDB)并从你的Azure应用程序服务连接到它。

票数 4
EN

Stack Overflow用户

发布于 2018-12-04 08:00:58

我写了一个小帮手来让这变得更简单:

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

Startup.cs

代码语言:javascript
复制
string connectionString = Environment.GetEnvironmentVariable("MYSQLCONNSTR_localdb");
        services.AddDbContext<ApplicationDbContext>(options =>  
            options.UseMySql(AzureMySQL.ToMySQLStandard(connectionString))
        );

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

代码语言:javascript
复制
Name: MYSQLCONNSTR_localdb
Value: Database=dotnetpwa;Data Source=127.0.0.1:3307;User Id=kedzior;Password=kedzior

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

票数 1
EN

Stack Overflow用户

发布于 2022-01-20 06:00:23

在我的例子中,我让它改变连接的字符串格式。

代码语言:javascript
复制
ConStr = System.Environment.GetEnvironmentVariable("MYSQLCONNSTR_localdb");
ConStr = ConStr.Replace("Database", "database");
ConStr = ConStr.Replace("Data Source", "server");
ConStr = ConStr.Replace("User Id", "user");
ConStr = ConStr.Replace("Password", "password");
ConStr = ConStr.Replace("127.0.0.1", "localhost");

// This line split "server=localhost:[port]" in "server=localhost;port=[port]
ConStr = ConStr.Replace(":", ";port="); 

似乎只有最后一行为我解决了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40549509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档