J'essaie de configurer un site Web et une tâche Web, mais j'obtiens une erreur à chaque fois que j'essaie de publier la tâche Web indépendamment du site Web (c'est-à-dire en sélectionnant Publish as Azure WebJob
dans le menu contextuel).
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets (4270,5): Erreur: Chaîne de connexion 'MyWebJob.Models.MyDataEntities-Web.config' l'argument ne peut être nul ou vide.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets (4270,5): Erreur: Le fichier "MyWebJob.Models.MoreDataEntities-Web L'argument de .config Connection String 'ne peut être null ou vide.
Il y a deux options pour déployer un WebJob
Lorsque je lie mon travail Web à un projet de site Web, celui-ci se déploie avec le site Web sans erreur. Cependant, lorsque j'essaie de le déployer de manière indépendante, l'erreur ci-dessus apparaît dans la console et dans la liste d'erreurs, mais la tâche Web est toujours déployée.
Comment puis-je déployer mon travail Web indépendamment et supprimer cette "erreur" persistante?
J'ai trouvé que fournir une valeur pour
<Destination Path="" />
dans votre profil de publication, le fichier pubxml s'est débarrassé du problème. Cela se trouve généralement dans\Properties\PublishProfiles. Vous avez probablement quelque chose comme:
<PublishDatabaseSettings>
<Objects xmlns="">
<ObjectGroup Name="Context" Order="1" Enabled="False">
<Destination Path="" />
<Object Type="DbCodeFirst">
<Source Path="DBMigration" DbContext="Context, DAO" MigrationConfiguration="Context.Migrations.Configuration, DAO" Origin="Convention" />
</Object>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
Le changer pour le suivant a résolu le problème pour moi:
<PublishDatabaseSettings>
<Objects xmlns="">
<ObjectGroup Name="Context" Order="1" Enabled="False">
<Destination Path="{deployment connection string}" />
<Object Type="DbCodeFirst">
<Source Path="DBMigration" DbContext="Context, DAO" MigrationConfiguration="Context.Migrations.Configuration, DAO" Origin="Convention" />
</Object>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
J'espère que cela pourra aider.
J'ai constaté que la suppression du répertoire obj
dans le projet WebJob effacera la zone de stockage intermédiaire dans laquelle le package WebJob à publier est en cours de construction. Publier a ensuite été réussi.
Raison du problème
Modifiez le nom de la chaîne de connexion dans Web.Config ou/et ajoutez une nouvelle chaîne de connexion à Web.Config.
Solution
Appuyez sur le lien Paramètres et dans la fenêtre contextuelle, sélectionnez l'onglet "Paramètres".
Décochez le use this connection string at runtime
de toutes vos chaînes de connexion.
Save
pour fermer la fenêtre. (Pas besoin de redémarrer Visual Studio)NOTE
J'utilise VS 2017
Juste pour la note
Après avoir suivi les étapes précédentes, j'ai remarqué que le fichier .pubxml était modifié automatiquement. voici la différence qui a été faite (automatiquement sans aucune ingérence de ma part)
Donc, je pense que c'est mieux, parce que c'est plus facile pour le développeur et aussi de laisser le studio visuel résoudre ses problèmes lui-même, sans le forcer pour des choses spécifiques.