mysql - 在 Docker 上连接到 MySql

标签 mysql asp.net-web-api docker asp.net-core dnx

我有一个部署在 docker 上的 ASP.NET 5 Web API 应用程序。它连接到 MySql 实例,也在 docker 上。我正在使用 Entity Framework 6 连接到 MySql 数据库。我没有直接引用 Entity Framework,而是使用内部使用 Entity Framework 6 的 MySql.Data.Entity 包。

当我调用 API 时,出现此错误:

无法确定“MySql.Data.MySqlClient.MySqlClientFactory”类型的提供者工厂的提供者名称

在 docker 外部,即在我的 Windows 机器上,在 Visual Studio 2015 中,我将我的 Web API 指向 docker 上的 MySql 实例,我可以很好地连接。在 docker 中,我收到上述错误。

有什么问题吗?

最佳答案

未传递提供者名称。在 ASP.NET 5 之前,provider 值可以在 web.config 中与 connectionString 一起设置。这不再是这种情况,因为连接字符串只是 json 文件中的一个字符串值,没有额外的属性。

您需要以编程方式设置它。 Here's an example , 特别是这部分;

SetProviderServices("MySql.Data.MySqlClient", new MySqlProviderServices());

关于mysql - 在 Docker 上连接到 MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33549146/

相关文章:

Docker:由于缺少 bash,无法编辑图像中的代码

mysql - 我可以在 SQL 中使用变量吗?如果没有,如何避免这种情况?

mysql - Rails 单元测试中的枚举

php - MySQL 确保 is_free_lock 始终是独占的

php - 更新查询不起作用

json - 不明白如何将 JSON.NET 与 ASP.NET Core WebAPI 一起使用

reactjs - 无法在 Elastic Beanstalk 上部署节点 : The command '/bin/sh -c npm install' returned a non-zero code: 1

javascript - 哪个版本的 Bing API 使用 OpenLayers? (如果有的话)

backbone.js - 在 IE8/9 中使用 Backbone 发出 CORS 请求

docker - HyperLedger Fabric v1.4.4:在mychannel上实例化智能合约,但出现错误