Probleme beim Bereitstellen einer Website auf einem Windows 2008 R2-Server mit IIS7. Ich habe zuvor eine andere Site auf diesem Server bereitgestellt. Die Webbereitstellung verbindet und kopiert meine Dateien auf den Server. Ich sehe jedoch die folgenden Fehler.
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
Ich habe überprüft, dass der Pfad auf meinem lokalen Computer vorhanden ist.
Ich habe versucht, mit out web.config transforms und mit den Funktionen xdt: transform die Remote-Server-Strings festzulegen.
Ich habe auch die Verbindungszeichenfolgen für die Ziel- und Quellendatenbank auf der Registerkarte Package/Publish SQL explizit festgelegt und bin ratlos, was das Problem ist.
Irgendwelche Ideen?
Dies geschah gerade jetzt für mich und ich schaffte es, das Problem zu isolieren. Nachdem ich manuell eine neue SQL Server
-Verbindungszeichenfolge in meinem Web.config
hinzugefügt hatte, trat dieser Fehler auf, als ich versuchte, mich auf dem Remote-Server bereitzustellen.
Beim Öffnen des Web-Bereitstellungsprofils in Visual Studio 2012 habe ich festgestellt, dass auf der Registerkarte Settings
diese Option festgelegt wurde: Verwenden Sie diese Verbindungszeichenfolge zur Laufzeit (Aktualisierungsziel Web.config) .
Seltsamerweise wurde dies automatisch von VS 2012 eingerichtet ...
Um das Problem zu lösen, deaktivieren Sie das Kontrollkästchen und die Webbereitstellung sollte wieder funktionieren.
Wenn Sie zusätzlich zu Leniels Antwort nicht SqlClient oder Entity Framework Code First verwenden und daher die Kontrollkästchen nicht sehen, setzen Sie den providerName in der Verbindungszeichenfolge Ihrer web.config temporär auf System.Data.SqlClient und gehen Sie dann zurück Um Ihre Veröffentlichungseinstellungen zu deaktivieren, deaktivieren Sie das Kontrollkästchen.
Ich hatte das gleiche Problem:
2> C: ...\Microsoft.Web.Publishing.targets (4270,5): Fehler: Das Argument 'db-Web.config Connection String' darf nicht null oder leer sein. 2> C :. ..\Microsoft.Web.Publishing.targets (4270,5): Fehler: Das Argument 'dbAudit-Web.config-Verbindungszeichenfolge' darf nicht leer oder leer sein. 2> C: ...\Microsoft. Web.Publishing.targets (4270,5): Fehler: Das Argument 'dbLog-Web.config Connection String' darf nicht leer oder leer sein.
wie ich verwendet habe:
<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>
und als ich hier las, ging es um das Publish-Profil . Ich öffne dann die .pubxml
-Datei und habe Folgendes gefunden:
<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>
füge <UpdateDestWebConfig>False</UpdateDestWebConfig>
zu jedem Knoten hinzu.
<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>
einfach durch Löschen dieses Eintrags alles hat wieder funktioniert ...
Keine der angebotenen Lösungen hat mir geholfen.
Ich entdeckte schließlich, dass in meinem lokalen Web.config
eine leere Standardverbindungszeichenfolge mit dem Namen LocalMySqlServer
vorhanden war (die wahrscheinlich durch das Mysql.Data NuGet-Paket dort abgelegt wurde).
Nachdem ich die hervorgehobene Zeile entfernt hatte, konnte ich erfolgreich veröffentlichen.
Ich hatte das gleiche Problem, als ich eine Webanwendung auf einem Azure-Webserver implementierte. Ich habe es gelöst, indem ich einen neuen Server erstellt habe. An diesem Punkt wurde mir klar, dass sich auf diesem Server bereits eine andere Anwendung befand. Diese Anwendung verwendete einen Kontextnamen, der von der zweiten Anwendung nicht überschrieben wurde, sodass nach einem Verbindungsstring gesucht wurde, der von der zweiten Anwendung überschrieben wurde. Wenn Sie Ihren Server löschen, wird das Problem möglicherweise behoben.
Ich hatte genau das gleiche Problem - direkt aus heiterem Himmel bei VS 2017.
Es stellte sich heraus, dass dies darauf zurückzuführen ist, dass ich VS als Administrator ausgeführt habe. Ich habe die App geschlossen, normal neu gestartet und alles war wieder normal.