Azure:Web.config连接字符串'参数不能为null或为空

use*_*787 10 connection-string azure azure-deployment azure-webjobs visual-studio-2015

当我尝试发布一个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有一个连接字符串.例如

 <add name="mytestdbEntities" connectionString="metadata=res://*/mytestappModel.csdl|res://*/mytestappModel.ssdl|res://*/mytestappModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;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&quot;" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

不知道在哪里开始寻找解决方案,因为网络上任何与天蓝色相关的错误都没有提到.

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>
Run Code Online (Sandbox Code Playgroud)

更新:据我所知,使用"数据库优先"类型实体(edmx)文件向Azure发布简单的应用程序是不可能的.

自动生成.... Web Deploy.pubxml充满了不兼容的垃圾和"DeployParameterPrefix",它无法删除并破坏构建.

我只想调用简单的存储过程,例如

 myappLiveEntities db = new myappLiveEntities();
 db.DoSomeDatabaseWork();
Run Code Online (Sandbox Code Playgroud)

会不会做"老派"的方法.

Art*_*etz 5

我遇到了一个我已经成功部署的webjob。我最终删除了webjob项目PublishProfiles文件夹下的pubxml文件,并重做了发布为Azure WebJob。

当我升级到特定的nuget程序包时,此问题再次弹出:“ Microsoft.WindowsAzure.ConfigurationManager” version =“ 3.2.3”在发布更新的Web应用程序或编辑WebApp的发布设置之前发布Web作业可能是一个问题。 ..

编辑:从那以后,我已经切换到将Web作业包含到Web应用程序发布设置中。您可以通过右键单击项目,然后选择“添加”->“现有项目”作为Azure Web作业来执行此操作。我不再单独发布WebJob。


chi*_*ef7 1

ParameterValue我相信您需要在列表项下添加一个MSDeployParameterValue。例如,

<ItemGroup>
  <MSDeployParameterValue Include="Parameter Name">
    <ParameterValue>Parameter Value</ParameterValue>
  </MSDeployParameterValue>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)