web-dev-qa-db-fra.com

L'argument 'DefaultConnection-Web.config Connection String' ne peut pas être nul ou vide. VS2013

Lorsque je déploie mon projet avec "Publier en tant qu'Azure WebJob" à l'aide de Visual Studio 2013/mise à jour 4, j'obtiens l'erreur dans le titre.

44
RickAndMSFT

Corrigé en supprimant le balisage suivant du fichier .pubxml. Vous devez quitter/redémarrer VS après avoir supprimé le balisage (sinon VS le rajoutera).

<ItemGroup>
  <MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String" />
</ItemGroup>
43
RickAndMSFT

Raison du problème
Modifiez et/ou ajoutez le nom de la chaîne de connexion dans le web.config.

Solution

  1. Sélectionnez le projet de site Web, faites un clic droit dessus, puis cliquez sur publier.
    enter image description here

  1. Appuyez sur le lien des paramètres et dans la fenêtre contextuelle, sélectionnez l'onglet "Paramètres"

  2. Décochez la case use this connection string at runtime à partir de toutes vos chaînes de connexion.

enter image description here

  1. Cliquez sur le bouton Save pour fermer la fenêtre. (Pas besoin de redémarrer Visual Studio)
  2. Essayez de publier à nouveau le site Web, et il devrait publier sans problème.

[~ # ~] note [~ # ~]
J'utilise VS 2017 (et selon les commentaires, cela fonctionne également dans Visual Studio 2013)

Juste pour note
Après avoir effectué les étapes précédentes, j'ai remarqué que le fichier .pubxml a changé automatiquement. voici la différence qui a été faite (automatiquement sans aucune interférence de ma part)

Je pense donc que c'est une meilleure façon car c'est plus facile pour le développeur et cela permet également au studio visuel de résoudre ses problèmes lui-même, sans le forcer dans une chose spécifique.

enter image description here

18
Hakan Fıstık

Créez un fichier Parameters.xml dans la racine du projet avec le contenu suivant:

<?xml version="1.0" encoding="utf-8" ?>
<parameters>
  <parameter name="DefaultConnection-Web.config Connection String"
      description="DefaultConnection"
      defaultValue="Server=tcp:x.database.windows.net,1433;Database=x_db;User ID=x@y;Password=z;Trusted_Connection=False;etc." tags="" />
</parameters>

Tous les autres éléments de configuration manquants peuvent également être ajoutés ici.

11
Norbert Kardos

J'ai Visual Studio 2015 Update 3 et j'étais confronté au même problème. La solution que j'ai trouvée qui fonctionne pour moi est la suivante:

1) Ouvrez le fichier * .pubxml sous propriétés -> publier les profils.

2) Recherchez l'attribut Path dans la section PublishDatabaseSettings:

<PublishDatabaseSettings>
      <Objects xmlns="">
        <ObjectGroup Name="eRecall.ETL.Models.erecallContext" Order="1" Enabled="False">
          <Destination Path="" />
          <Object Type="DbCodeFirst">
            <Source Path="DBContext" DbContext="eRecall.ETL.Models.erecallContext, eRecall.ETL" />
          </Object>
        </ObjectGroup>
      </Objects>
    </PublishDatabaseSettings> 

3) Définissez la valeur d'attribut Path sur les éléments suivants:

<PublishDatabaseSettings>
      <Objects xmlns="">
        <ObjectGroup Name="eRecall.ETL.Models.erecallContext" Order="1" Enabled="False">
          <Destination Path="{deployment connection string}" />
          <Object Type="DbCodeFirst">
            <Source Path="DBContext" DbContext="eRecall.ETL.Models.erecallContext, eRecall.ETL" />
          </Object>
        </ObjectGroup>
      </Objects>
    </PublishDatabaseSettings>

4) Supprimez le déploiement de travail Web existant dans Azure Job Collection Scheduler.

5) Redéployez le travail Web, réexécutez le travail Web à partir du planificateur et il commence à fonctionner sans aucun problème!

J'espère que cela t'aides.

4
Mostafa