起因:开发的时候需要在本地和服务器配置不同的数据库连接,本地开发环境连接的是本地数据库,服务器连接的是生产环境数据库。这是在项目开发中很常见的情况。没想到,在visual studio.net(2015版)中踩了一个不小的坑。
先是从网上找到了分别设置的办法,在Web.Debug.config中插入
<system.data xdt:Transform="InsertIfMissing"> <DbProviderFactories> <add name="MysqL Data Provider" invariant="MysqL.Data.MysqLClient" description=".Net Framework Data Provider for MysqL" type="MysqL.Data.MysqLClient.MysqLClientFactory,MysqL.Data,Version=6.9.9.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data> <connectionStrings> <add name="BlogDBContext" connectionString="User Id=root;host=localhost;Database=bcblog1;password=;port=3306;persist security info=True;character set=utf8;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> <add name="ApplicationServices" connectionString="User Id=root;host=localhost;Database=bcblog1;password=;port=3306;persist security info=True;character set=utf8;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings>在Web.Release.config中插入
<system.data xdt:Transform="Remove" /> <connectionStrings> <add name="BlogDBContext" connectionString="User Id=user_blog1;host=47.89.54.39;Database=bcblog1;password=88888888;port=3306;persist security info=True;character set=utf8;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> <add name="ApplicationServices" connectionString="User Id=user_blog1;host=47.89.54.39;Database=bcblog1;password=88888888;port=3306;persist security info=True;character set=utf8;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings>本来这样问题应该解决了,但根本不起作用,这是微软的东西最让人愤怒的地方:出了问题根本找不到原因在哪里,只能怪自己的人品问题或祈求神明保佑。
经历了几个小时的愤怒、绝望、憎恨、无奈。。。在国外网站中找到了解决办法:
修改项目的@R_502_382@,比如XXX.csproj或XXX.vbproj(csproj或vbproj取决于你使用的语言是C#还是VB.NET),把最后的注释掉的BeforeBuild和AfterBuild部分取消注释,修改为:
<Target Name="BeforeBuild"> <TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" /> </Target> <Target Name="AfterBuild"> </Target>这是微软犯的错误,一个小bug浪费了无数人几个小时甚至几天的生命。
最后,微软的东西还是不错的,人性化、易用,就是有时候犯起神经来让人无语。
原文链接:https://www.f2er.com/windows/566665.html