webentwicklung-frage-antwort-db.com.de

Bei der VS2010-Webbereitstellung darf das Argument für die Verbindungszeichenfolge nicht null oder leer sein

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?

27
MPD

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.

enter image description here

44

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.

14
Koen Schepens

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

12
balexandre

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.

 enter image description here

3
silkfire

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.

0

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.

0
John Ohara