8

Kiedy próbuję opublikować aplikację Lazur otrzymuję ten błąd. C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Web \ Microsoft.Web.Publishing.targets (4283,5): Błąd: Argument "String połączenia" ibasis_Data_Transfer.mytestdbEntities-Web.config nie może być puste lub puste.Azure: Web.config Connection String 'argument nie może być pusty lub pusty

Moja App.Config ma ciąg połączenia. na przykład

<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" /> 

Nie wiem, od czego zacząć szukanie rozwiązania, ponieważ błąd nie został wymieniony w internecie w żadnym miejscu w odniesieniu do lazuru.

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>

Aktualizacja: O ile mogę powiedzieć publikację VS prostych Apps do Azure z „pierwszej bazy” podmiot typu (edmx) plików nie jest możliwe.

Auto generowane .... Program Web Deploy.pubxml jest wypełniany niezgodnym ze spamem i "DeployParameterPrefix", którego nie można usunąć i przerwać kompilację.

Chciałam tylko wywołać prostą procedurę przechowywaną, np.

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

Czy zrobię to metodą "starej szkoły".

+0

Czy nadpisujesz ciąg połączenia podczas publikowania? Czy masz transformację konfiguracji, która miesza się z łańcuchem połączenia? –

+0

_ConnectionStringsToInsert prawdopodobnie coś robi, ale nie jest pewien co. Czy to ustawienie portalu? Portal nie przyjmuje ciągów połączeń w tym formacie: "metadata = res: //*/mytestappModel.csdl | res ......." – user964787

+0

Możliwy duplikat ciągu [The Connection DefaultConnection-Web.config ' Argument nie może być pusty ani pusty. VS2013] (http://stackoverflow.com/questions/28996604/the-defaultconnection-web-config-connection-string-argument-cannot-be-null-or) –

Odpowiedz

0

Uważam, że należy dodać element ParameterValue pod pozycją listy MSDeployParameterValue. Na przykład:

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

Takich jak? Co "Nazwa i wartość parametru.? – user964787

+0

Twój ciąg połączenia z bazą danych. – chief7

4

Wpadłem na to z webjobem, który z powodzeniem wdrażałem. Usunąłem usunięcie pliku pubxml w folderze PublishProfiles projektu webjob i ponowić publikację jako WebJob As Azure.

Ten problem pojawił się ponownie po uaktualnieniu do tego konkretnego pakietu Nuget: „Microsoft.WindowsAzure.ConfigurationManager” version = „3.2.3” To może być problem z opublikowaniem webjob przed opublikowaniem zaktualizowaną aplikację lub edytowanie ustawień publikowania WebApp ...

Edytuj: Od tej pory włączam zadanie sieciowe do ustawień publikowania aplikacji internetowej. Możesz to zrobić, klikając projekt prawym przyciskiem myszy i wybierając opcję Dodaj -> Istniejący projekt jako zadanie sieciowe Azure. Nie publikuję już WebJob osobno.

Powiązane problemy