C# ConfigurationManager.ConnectionString[“aaa”]。ConnectionString将127.0.0.1替换为本地主机

C# ConfigurationManager.ConnectionString[“aaa”]。ConnectionString将127.0.0.1替换为本地主机,c#,mysql,mono,app-config,C#,Mysql,Mono,App Config,我有一个在Linux上运行的winforms应用程序,使用Mono,我想从我的app.config文件中获取ConnectionString string cs=ConfigurationManager.ConnectionStrings[“aaa”].ConnectionString 但它将SERVER=127.0.0.1转换为SERVER=localhost,使用此连接字符串,我无法连接到Mysql数据库,因为: 在Unix上,MySQL程序专门处理主机名localhost 如何获取连接字

我有一个在Linux上运行的winforms应用程序,使用Mono,我想从我的
app.config
文件中获取
ConnectionString

string cs=ConfigurationManager.ConnectionStrings[“aaa”].ConnectionString

但它将
SERVER=127.0.0.1
转换为
SERVER=localhost
,使用此连接字符串,我无法连接到Mysql数据库,因为:

在Unix上,MySQL程序专门处理主机名localhost


如何获取连接字符串并使
SERVER=127.0.0.1

您引用的文档仅适用于
mysql
程序,而不适用于Connector/NET(C#连接库)

根据,必须在连接字符串中设置
ConnectionProtocol=unix
,才能使用unix套接字;否则默认为TCP连接(甚至到
localhost


因此,不需要在连接字符串中替换主机名。

cs=cs.Replace(“SERVER=localhost”,“SERVER=127.0.0.1”)?“但它将[s]
SERVER=127.0.0.1
转换为
SERVER=localhost
”-不,它没有。检查您的配置文件。如果我在app.config中有连接字符串,则不需要替换。如果我要更改它,请将其放在一个位置。。转换不在我的app.config中,而是在我的app.config中。当我从app.config中获取转换时,我拥有的字符串是“SERVER=localhost”,而在我的app.config中是“SEVER=127.0.0.1”