web-dev-qa-db-fra.com

VS2010 Web déploie l'argument de la chaîne de connexion ne peut être null ou vide

Problèmes de déploiement d'un site Web sur un serveur Windows 2008 R2 exécutant IIS7. J'ai déjà déployé un autre site sur ce serveur. Le déploiement Web consiste à connecter et à copier mes fichiers sur le serveur, mais je constate les erreurs suivantes.

1 The 'Connection String' argument cannot be null or empty
2   Web deployment task failed.((20/07/2012 14:19:16) An error occurred when the request was processed on the remote computer.)

(20/07/2012 14:19:16) An error occurred when the request was processed on the remote computer. Could not find a part of the path 'C:\Users\Me\Documents\Visual Studio 2010\Projects\MySite\MySiteClient\obj\Release\AutoScripts\EFDbContext-Deployment_SchemaOnly.sql'.     0   0   MySiteClient

J'ai vérifié que le chemin existe sur ma machine locale.

J'ai essayé de publier avec des transformations web.config et en utilisant les fonctions xdt: transform pour définir les chaînes du serveur distant.

J'ai également explicitement défini les chaînes de connexion pour la base de données source et cible dans l'onglet Package/Publish SQL et je ne sais pas quel est le problème.

Des idées?

27
MPD

Cela se produisait actuellement pour moi et j'ai réussi à isoler le problème ... après avoir ajouté manuellement une nouvelle chaîne de connexion SQL Server dans mon Web.config, j'ai commencé à rencontrer cette erreur même lors d'une tentative de déploiement sur le serveur distant.

Lorsque j'ai ouvert le déploiement Web du profil de publication dans Visual Studio 2012, j'ai remarqué sous l'onglet Settings qu'il avait défini cette option: Utilisez cette chaîne de connexion lors de l'exécution (mise à jour de la destination Web.config) .

Étrangement, cela a été configuré automatiquement par VS 2012 ...

Pour résoudre le problème, décochez simplement cette case et le déploiement Web devrait recommencer à fonctionner.

enter image description here

44

En plus de la réponse de Leniel, si vous n'utilisez pas SqlClient ou Entity Framework Code First et ne voyez donc pas la ou les cases à cocher, définissez temporairement le providerName dans la chaîne de connexion de votre web.config sur System.Data.SqlClient, puis revenez à la page précédente. dans vos paramètres de publication pour décocher la ou les cases à cocher.

14
Koen Schepens

J'avais le même problème:

2> C: ...\Microsoft.Web.Publishing.targets (4270,5): Erreur: l'argument 'Chaîne de connexion db-Web.config' ne peut pas être null ou vide. 2> C :. ..\Microsoft.Web.Publishing.targets (4270,5): Erreur: l'argument 'Chaîne de connexion dbAudit-Web.config' ne peut pas être null ou vide. 2> C: ...\Microsoft. Web.Publishing.targets (4270,5): Erreur: l'argument 'Chaîne de connexion dbLog-Web.config' ne peut pas être null ou vide.

comme j'utilisais:

<connectionStrings>
  <add name="db" providerName="MySql.Data" connectionString="server=mysql.gko.local;user=maindk;database=gavekortet;port=3306;password=123456" />
  <add name="dbLog" providerName="MySql.Data" connectionString="server=mysql.gko.local;user=maindk;database=logs;port=3306;password=123456" />
  <add name="dbAudit" providerName="MySql.Data" connectionString="server=mysql.gko.local;user=maindk;database=audit;port=3306;password=123456;pooling=false" />
</connectionStrings>

et comme je lisais ici, le problème concernait le publish profile , j’ai alors ouvert le fichier .pubxml et j’ai trouvé:

<ItemGroup>
  <MSDeployParameterValue Include="$(DeployParameterPrefix)db-Web.config Connection String" />
  <MSDeployParameterValue Include="$(DeployParameterPrefix)dbAudit-Web.config Connection String" />
  <MSDeployParameterValue Include="$(DeployParameterPrefix)dbLog-Web.config Connection String" />
</ItemGroup>

ajoutez <UpdateDestWebConfig>False</UpdateDestWebConfig> à chaque nœud, il deviendra alors:

<ItemGroup>
<MSDeployParameterValue Include="$(DeployParameterPrefix)db-Web.config Connection String">
  <UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
<MSDeployParameterValue Include="$(DeployParameterPrefix)dbAudit-Web.config Connection String">
  <UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
<MSDeployParameterValue Include="$(DeployParameterPrefix)dbLog-Web.config Connection String">
  <UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
</ItemGroup>

simplement en supprimant cette entrée , tout fonctionnait à nouveau ...

12
balexandre

Aucune des solutions fournies ne m'a aidé.

J'ai finalement découvert que, dans mon Web.config local, il y avait une chaîne de connexion par défaut vide appelée LocalMySqlServer (probablement indiquée par le paquet Mysql.Data NuGet).

Après avoir supprimé la ligne en surbrillance ci-dessous, j'ai pu publier avec succès.

 enter image description here

3
silkfire

J'ai eu le même problème lorsque j'ai déployé une application Web sur un serveur Web Azure. Je l'ai résolu en créant un nouveau serveur. Sur ce point, j'ai réalisé qu'il y avait une autre application sur ce serveur avant. Cette application utilisait un nom de contexte qui n'était pas surchargé par la seconde application, de sorte que l'on cherchait sans cesse une chaîne de connexion surchargée par la seconde application. Je suppose que nettoyer votre serveur peut résoudre le problème.

0
Roy Van den Heede

J'ai eu exactement le même problème - à l'improviste sur VS 2017.

Il s'avère que c'était parce que j'exécutais VS en tant qu'administrateur. J'ai fermé l'application, redémarré normalement et tout était revenu à la normale.

0
John Ohara