8

當我嘗試發佈一個天藍色的應用程序時,出現此錯誤。 C:\ Program Files文件(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Web \ Microsoft.Web.Publishing.targets(4283,5):錯誤:'ibasis_Data_Transfer.mytestdbEntities-Web.config連接字符串'參數不能爲空或空白。Azure: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" /> 

不知道從哪裏開始尋找解決方案,因爲在任何地方都沒有提到與azure相關的錯誤。

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出版與「數據庫第一」類型的實體到Azure(EDMX)文件是不可能的。

自動生成.... Web Deploy.pubxml被填充了不兼容的垃圾,如「DeployParameterPrefix」,無法刪除並破壞構建。

我只想調用簡單的存儲過程,例如

myappLiveEntities db = new myappLiveEntities(); 
db.DoSomeDatabaseWork(); 

會做它「老派」的方法。

+0

您是否在發佈期間覆蓋連接字符串?你有配置轉換是搞亂連接字符串嗎? –

+0

_ConnectionStringsToInsert可能在做某事但不知道是什麼。它是一個門戶設置? 門戶網站不接受具有以下格式的連接字符串:「metadata = res://*/mytestappModel.csdl | res .......」 – user964787

+0

[DefaultConnection-Web.config Connection String'參數不能爲空或爲空。 VS2013](http://stackoverflow.com/questions/28996604/the-defaultconnection-web-config-connection-string-argument-cannot-be-null-or) –

回答

0

我相信你需要在MSDeployParameterValue列表項下添加一個ParameterValue。例如,

<ItemGroup> 
    <MSDeployParameterValue Include="Parameter Name"> 
    <ParameterValue>Parameter Value</ParameterValue> 
    </MSDeployParameterValue> 
</ItemGroup> 
+0

如?什麼「參數名稱和值。? – user964787

+0

您的數據庫連接字符串。 – chief7

4

我遇到了一個我已經成功部署的webjob。我最終刪除了webjob項目PublishProfiles文件夾下的pubxml文件,並重新發布了作爲Azure WebJob的發佈。

這個問題再次彈出,當我升級到這個特定的NuGet包: 「Microsoft.WindowsAzure.ConfigurationManager」版本=「3.2.3」 這可能與發佈更新的Web應用程序之前或發佈webjob問題編輯WebApp發佈設置...

編輯:我已經切換到將Web作業添加到Web應用發佈設置。您可以通過右鍵單擊該項目並選擇添加 - >將現有項目作爲Azure Web作業來完成此操作。我不再單獨發佈WebJob。

相關問題