web-dev-qa-db-ja.com

WebJobプロジェクトの接続文字列を設定するにはどうすればよいですか?

WebサイトとWebジョブをセットアップしようとしていますが、Webサイトとは別にWebジョブを公開しようとするとエラーが発生します(つまり、コンテキストメニューから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接続文字列」引数をnullまたは空にすることはできません。
C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4270,5):エラー: 'MyWebJob.Models.MoreDataEntities-Web .config接続文字列の引数をnullまたは空にすることはできません。

WebJobをデプロイするための2つのオプションがあります

WebジョブをWebサイトプロジェクトにリンクすると、エラーなしでWebサイトとともにデプロイされます。ただし、個別にデプロイしようとすると、コンソールとエラーリストに上記のエラーが表示されますが、Webジョブはデプロイされたままです。

Webジョブを個別にデプロイして、この永続的な「エラー」を取り除くにはどうすればよいですか?

27
Enrico

私は

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

お役に立てば幸いです。

47
Willisterman

WebJobプロジェクト内のobjディレクトリを削除すると、公開するWebJobパッケージがビルドされているステージング領域がクリアされることがわかりました。その後、公開は成功しました。

3
Craigology

問題の理由
Web.Configの接続文字列の名前を変更するか、Web.Configに新しい接続文字列を追加します。

ソリューション

  1. Webサイトプロジェクトを選択して右クリックし、[公開]をクリックします。
    enter image description here

  1. 設定リンクを押し、ポップアップウィンドウから[設定]タブを選択します

  2. すべての接続文字列からuse this connection string at runtimeのチェックを外します。

enter image description here

  1. Saveボタンをクリックしてウィンドウを閉じます。 (Visual Studioを再起動する必要はありません)
  2. Webサイトを再度公開してみてください。問題なく公開されるはずです。

[〜#〜]注[〜#〜]
VS2017を使用しています


前の手順を実行した後、.pubxmlファイルが自動的に変更されていることに気付きました。これが(私からの干渉なしに自動的に)行われた違いです

したがって、これは開発者にとってより簡単であり、ビジュアルスタジオが特定のことを強制することなく自分で問題を解決できるため、より良い方法だと思います。

enter image description here

1
Hakan Fıstık