当我尝试发布azure应用时,我收到此错误。 C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Web \ Microsoft.Web.Publishing.targets(4283,5):错误:'ibasis_Data_Transfer.mytestdbEntities-Web.config连接字符串'参数不能为空或空。
我的App.Config有一个连接字符串。 e.g。
<add name="mytestdbEntities" connectionString="metadata=res://*/mytestappModel.csdl|res://*/mytestappModel.ssdl|res://*/mytestappModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:srv-mytestapp-home.database.windows.net,1433;initial catalog=mytestdb;persist security info=True;user id=blabla;password=blabla;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
不知道从哪里开始寻找解决方案,因为网上任何地方都没有提到与天蓝色相关的错误。
ibasis - Web Deploy.pubxml
<?xml version="1.0" encoding="utf-8" ?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<PublishProvider>AzureWebSite</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>http://ibasis.azurewebsites.net</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
<MSDeployServiceURL>ibasis.scm.azurewebsites.net:443</MSDeployServiceURL>
<DeployIisAppPath>ibasis</DeployIisAppPath>
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<UserName>$ibasis</UserName>
<_SavePWD>True</_SavePWD>
<_DestinationType>AzureWebSite</_DestinationType>
<PublishDatabaseSettings>
<Objects xmlns="">
<ObjectGroup Name="ibasis_Data_Transfer.ibasisLiveEntities" Order="1" Enabled="False">
<Destination Path="" />
<Object Type="DbCodeFirst">
<Source Path="DBContext" DbContext="ibasis_Data_Transfer.ibasisLiveEntities, ibasis-Data-Transfer" />
</Object>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
</PropertyGroup>
<ItemGroup>
<MSDeployParameterValue Include="$(DeployParameterPrefix)ibasis_Data_Transfer.ibasisLiveEntities-Web.config Connection String" />
</ItemGroup>
<ItemGroup>
<_ConnectionStringsToInsert Include="ibasis_Data_Transfer.ibasisLiveEntities" />
</ItemGroup>
</Project>
更新:至于我可以告诉VS使用“数据库优先”类型实体(edmx)文件向Azure发布简单的应用程序是不可能的。
自动生成.... Web Deploy.pubxml充满了不兼容的垃圾和“DeployParameterPrefix”,无法删除并破坏构建。
我只想调用简单的存储过程,例如
myappLiveEntities db = new myappLiveEntities();
db.DoSomeDatabaseWork();
会做“老派”的方法。
答案 0 :(得分:4)
我遇到了一个我已经成功部署的webjob。我最终删除了webjob项目PublishProfiles文件夹下的pubxml文件,并重做了发布为As Azure WebJob。
当我升级到此特定nuget包时,此问题再次出现: “Microsoft.WindowsAzure.ConfigurationManager”version =“3.2.3” 在发布更新的Web应用程序或编辑WebApp发布设置之前发布webjob可能会出现问题......
编辑:我已经切换到将Web作业包含到Web应用程序发布设置中。您可以通过右键单击项目并选择Add - &gt;来完成此操作。现有项目作为Azure Web作业。我不再单独发布WebJob。
答案 1 :(得分:0)
我认为您需要在ParameterValue
列表项下添加MSDeployParameterValue
。例如,
<ItemGroup>
<MSDeployParameterValue Include="Parameter Name">
<ParameterValue>Parameter Value</ParameterValue>
</MSDeployParameterValue>
</ItemGroup>