visual studio 2017 web部署emply数据库连接字符串

时间:2017-10-25 20:44:48

标签: c# .net visual-studio-2017

我有一个最初用VS2015编写的C#应用​​程序,但今年早些时候我们已升级到2017年。我在VS2017个月前打开了该项目,并继续前进。有一个很长的故事,我认为这与在过去4-5个工作日内与cssjs部署相关的应用程序发生的一些严重怪异无关。我只想说我在VS2017中举手并创建了一个新的c#/ .net框架项目,并将主要源文件和web.config文件复制过来;重新制作了我的模特;带来了必要的nuget包等。我没有问题地建立了这个项目。

我现在正在尝试进行Web部署。这应该是一件简单的事情。 "发布"项目的版本需要将相关文件传输到IIS dev服务器。在奇怪之前我和VS2017做了很多次。它奏效了。

现在,在VS2017中从头开始创建的.Net Framework项目Web Deploy失败并显示错误

The 'Connection String' argument cannot be null or empty.

这是特殊的,因为当我创建Deploy配置文件时,我告诉它不要部署数据库。但是,似乎取消选中"在运行时使用此连接字符串" Web Deply设置中的框将被忽略。取消选中框并保存编辑然后重新编辑设置会显示已选中的框。取消选中,保存,退出VS并重新进入已选中复选框。

我在生成的Release.pubxml文件中看到了连接元素

    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        ...
        <PublishDatabaseSettings>
          <Objects xmlns="">
            <ObjectGroup Name="MsSQLEntities" Order="1" Enabled="False">
              <Destination Path="" />
              <Object Type="DbCodeFirst">
                <Source Path="DBContext" DbContext="myapp.Models.MsSQLEntities, My App" Origin="Configuration" />
              </Object>
            </ObjectGroup>
            <ObjectGroup Name="MySQLEntities" Order="2" Enabled="False">
              <Destination Path="" />
              <Object Type="DbCodeFirst">
                <Source Path="DBContext" DbContext="myapp.Models.MySQLEntities, My App" Origin="Configuration" />
              </Object>
            </ObjectGroup>
          </Objects>
        </PublishDatabaseSettings>
      </PropertyGroup>
      <ItemGroup>
        <MSDeployParameterValue Include="MySQLEntities-Web.config Connection String">
          <UpdateDestWebConfig>False</UpdateDestWebConfig>
        </MSDeployParameterValue>
        <MSDeployParameterValue Include="MsSQLEntities-Web.config Connection String">
          <UpdateDestWebConfig>False</UpdateDestWebConfig>
        </MSDeployParameterValue>
      </ItemGroup>
    </Project>

我查看了此项目的早期副本中的Release.pubxml文件。它本来是bt vs2015。虽然我知道我取消选中上面的数据库连接盒;此文件中包含完整的连接字符串。

我现在尝试复制&#34; old&#34; pubxml文件到新项目但没有任何变化。

哦,刚刚在上面的pubxml文件中注意到它&#34; DbCodeFirst&#34;。我很确定这首先是DB。

帮助?

修改

抱歉,不知何故重复了原始

中的一个部分

1 个答案:

答案 0 :(得分:0)

发现了这个问题。 MySQL libs设置自己的方式在web.config文件中放了很多虚假的糠。所有条目都提到connectionStringName="LocalMySqlServer"。我评论了所有这些块并且它再次工作。

此外,即使网络发布弹出一个弹出窗口告诉我它已经失败,它真的没有。它实际上发布到远程开发站点。在那里运行应用程序会转储足够的错误提示以查找上面的信息。