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

Как настроить строки подключения для проекта WebJob?

Я пытаюсь настроить веб-сайт и webjob, но получаю сообщение об ошибке каждый раз, когда я пытаюсь опубликовать веб-сайт независимо от веб-сайта (т.е. выбрав Publish as Azure WebJob из контекстного меню)

C:\Program Files (X86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4270,5): Ошибка: соединение MyWebJob.Models.MyDataEntities-Web.config Аргумент String не может быть пустым или пустым.
C:\Program Files (X86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4270,5): Ошибка: соединение MyWebJob.Models.MoreDataEntities-Web.config Аргумент String не может быть пустым или пустым.

Существует два варианта развертывания WebJob

Когда я связываю свой веб-сайт с проектом веб-сайта, он развертывается с веб-сайтом без ошибок. Однако, когда я пытаюсь развернуть его самостоятельно, я получаю указанную выше ошибку в моей консоли и списке ошибок, но веб-приложение все еще развернуто.

Как я могу самостоятельно развернуть свой webjob и избавиться от этой постоянной "ошибки"?

4b9b3361

Ответ 1

Я обнаружил, что предоставление значения для

 <Destination Path="" /> 

в вашем опубликованном профиле pubxml файл избавился от проблемы. Обычно это можно найти в \Properties\PublishProfiles. Вероятно, у вас есть что-то вроде:

<PublishDatabaseSettings>
  <Objects xmlns="">
    <ObjectGroup Name="Context" Order="1" Enabled="False">
      <Destination Path="" />
      <Object Type="DbCodeFirst">
        <Source Path="DBMigration" DbContext="Context, DAO" MigrationConfiguration="Context.Migrations.Configuration, DAO" Origin="Convention" />
      </Object>
    </ObjectGroup>
  </Objects>
</PublishDatabaseSettings>

Сменив его на следующее, я установил его для меня:

<PublishDatabaseSettings>
  <Objects xmlns="">
    <ObjectGroup Name="Context" Order="1" Enabled="False">
      <Destination Path="{deployment connection string}" />
      <Object Type="DbCodeFirst">
        <Source Path="DBMigration" DbContext="Context, DAO" MigrationConfiguration="Context.Migrations.Configuration, DAO" Origin="Convention" />
      </Object>
    </ObjectGroup>
  </Objects>
</PublishDatabaseSettings>

Надеюсь, что это поможет.

Ответ 2

Я обнаружил, что удаление каталога obj в проекте WebJob очистит область промежуточного контура, в которой будет опубликован пакет WebJob, который будет опубликован. Опубликование было успешно.

Ответ 3

Причина проблемы
Измените имя строки подключения в Web.Config или/и добавьте новую строку подключения в Web.Config.

Решение

  • Выберите проект веб-сайта, щелкните его правой кнопкой мыши и нажмите публикацию.
    введите описание изображения здесь

  1. Нажмите ссылку настроек и во всплывающем окне выберите вкладку "Настройки"

  2. Снимите флажок use this connection string at runtime со всех строк подключения.

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

  1. Нажмите кнопку Save, чтобы закрыть окно. (Нет необходимости перезапускать Visual Studio)
  2. Попробуйте опубликовать веб-сайт еще раз, и он должен опубликоваться без проблем.

ПРИМЕЧАНИЕ
Я использую VS 2017

Только для заметки
После того, как я сделал предыдущие шаги, я заметил, что файл .pubxml изменился автоматически. вот различие, которое было сделано (автоматически без какого-либо вмешательства со стороны меня)

Итак, я думаю, что это лучший способ, потому что это проще для разработчика, а также позволяет визуальной студии самостоятельно решать свои проблемы, не заставляя ее делать что-то конкретное.

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