我有一个最初用VS2015编写的C#应用程序,但今年早些时候我们已升级到2017年。我在VS2017个月前打开了该项目,并继续前进。有一个很长的故事,我认为这与在过去4-5个工作日内与css
和js
部署相关的应用程序发生的一些严重怪异无关。我只想说我在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。
帮助?
修改
抱歉,不知何故重复了原始中的一个部分答案 0 :(得分:0)
发现了这个问题。 MySQL libs设置自己的方式在web.config文件中放了很多虚假的糠。所有条目都提到connectionStringName="LocalMySqlServer"
。我评论了所有这些块并且它再次工作。
此外,即使网络发布弹出一个弹出窗口告诉我它已经失败,它真的没有。它实际上发布到远程开发站点。在那里运行应用程序会转储足够的错误提示以查找上面的信息。