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?
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.
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.
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 ...
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.
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.
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.