Подтвердить что ты не робот

VS2010 веб-развертывание аргумента строки подключения не может быть пустым или пустым

У вас возникли проблемы с развертыванием веб-сайта на сервере r2 windows 2008 r2 под управлением IIS7. Я ранее размещал другой сайт на этом сервере. Развертывание сети - это подключение и копирование моих файлов на сервер, но я вижу следующие ошибки.

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

Я проверил, что путь существует на моей локальной машине.

Я попытался опубликовать с помощью преобразований web.config и с помощью функций xdt: transform для установки строк удаленного сервера.

Я также явно установил строки подключения как для исходной, так и для исходной базы данных на вкладке "Пакет/Публикация SQL" и не понимаю, в чем проблема.

Любые идеи?

4b9b3361

Ответ 1

Это происходило прямо сейчас, и мне удалось изолировать проблему... после добавления новой строки подключения SQL Server в моем Web.config я начал испытывать эту самую ошибку при попытке развернуть на удаленный сервер.

Когда я открыл веб-развертывание профиля публикации в Visual Studio 2012, я заметил на вкладке Settings, что он установил эту опцию: Использовать эту строку соединения во время выполнения (обновить адрес Web.config).

Странно, что это было автоматически настроено VS 2012...

Чтобы решить эту проблему, просто снимите флажок, чтобы флажок и развертывание сети снова начали работать.

enter image description here

Ответ 2

В дополнение к ответу Leniel, если вы не используете SqlClient или Entity Framework Code First и, таким образом, не видите флажки, временно установите имя поставщика в строке подключения web.config к System.Data.SqlClient и затем вернитесь к настройкам публикации, чтобы снять флажок (и).

Ответ 3

У меня была такая же проблема:

2 > C:...\Microsoft.Web.Publishing.targets(4270,5): Ошибка: аргумент "db-Web.config Connection String" не может быть пустым или пустым. 2 > C:...\Microsoft.Web.Publishing.targets(4270,5): Ошибка: аргумент "dbAudit-Web.config Connection String" не может быть пустым или пустым. 2 > C:...\Microsoft.Web.Publishing.targets(4270,5): Ошибка: аргумент "dbLog-Web.config Connection String" не может быть пустым или пустым.

как я использовал:

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

и поскольку я читал здесь, проблема заключалась в отношении публикации профиля, затем я открыл файл .pubxml, и я нашел:

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

добавьте <UpdateDestWebConfig>False</UpdateDestWebConfig> к каждому node, поэтому он станет следующим:

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

просто удалив эту запись, все снова работало...

Ответ 4

Ни один из предоставленных решений не помог мне.

Наконец-то я обнаружил, что в моей локальной Web.config была пустая строка подключения по умолчанию LocalMySqlServer (возможно, она помещена в пакет Mysql.Data​​strong > NuGet).

После удаления выделенной строки ниже я смог успешно опубликовать.

введите описание изображения здесь

Ответ 5

У меня была та же проблема, когда я развернул веб-приложение на веб-сервере Azure. Я решил это, создав новый сервер. В этот момент я понял, что раньше было другое приложение на этом сервере. Это приложение использовало имя-контекст, который не был зашифрован вторым приложением, так что он продолжал искать строку соединения, которая была перезаписана вторым приложением. Я хочу, чтобы очистка сервера могла решить проблему.