web-dev-qa-db-ja.com

'DefaultConnection-Web.config接続文字列'引数をnullまたは空にすることはできません。 VS2013

Visual Studio 2013/update 4を使用して「Azure WebJobとして発行」を使用してプロジェクトをデプロイすると、タイトルにエラーが表示されます。

44
RickAndMSFT

.pubxmlファイルから次のマークアップを削除して修正しました。マークアップを削除した後、VSを終了/再起動する必要があります(または、VSが再び追加します)。

<ItemGroup>
  <MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String" />
</ItemGroup>
43
RickAndMSFT

問題の理由
変更および/または接続文字列の名前を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. ウェブサイトを再度公開してみてください。問題なく公開されるはずです。

[〜#〜] note [〜#〜]
VS 2017を使用しています(コメントによると、これはVisual Studio 2013でも機能します)

注のためだけに
前の手順を実行した後、.pubxmlファイルが自動的に変更されたことに気付きました。ここに作成された違いがあります(私からの干渉なしに自動的に)

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

enter image description here

18
Hakan Fıstık

次のコンテンツを使用して、プロジェクトルートにParameters.xmlファイルを作成します。

<?xml version="1.0" encoding="utf-8" ?>
<parameters>
  <parameter name="DefaultConnection-Web.config Connection String"
      description="DefaultConnection"
      defaultValue="Server=tcp:x.database.windows.net,1433;Database=x_db;User ID=x@y;Password=z;Trusted_Connection=False;etc." tags="" />
</parameters>

その他の欠落している構成要素もすべてここに追加できます。

11
Norbert Kardos

Visual Studio 2015 Update 3を使用していますが、同じ問題に直面していました。私のために働いていることがわかった解決策は次のとおりです:

1)プロパティの下にある* .pubxmlファイルを開き、プロファイルを公開します。

2)PublishDatabaseSettingsセクションでPath属性を探します:

<PublishDatabaseSettings>
      <Objects xmlns="">
        <ObjectGroup Name="eRecall.ETL.Models.erecallContext" Order="1" Enabled="False">
          <Destination Path="" />
          <Object Type="DbCodeFirst">
            <Source Path="DBContext" DbContext="eRecall.ETL.Models.erecallContext, eRecall.ETL" />
          </Object>
        </ObjectGroup>
      </Objects>
    </PublishDatabaseSettings> 

3)パス属性値を次のように設定します。

<PublishDatabaseSettings>
      <Objects xmlns="">
        <ObjectGroup Name="eRecall.ETL.Models.erecallContext" Order="1" Enabled="False">
          <Destination Path="{deployment connection string}" />
          <Object Type="DbCodeFirst">
            <Source Path="DBContext" DbContext="eRecall.ETL.Models.erecallContext, eRecall.ETL" />
          </Object>
        </ObjectGroup>
      </Objects>
    </PublishDatabaseSettings>

4)Azure Job Collection Schedulerで既存のwebjobデプロイメントを削除します。

5)Webジョブを再展開し、スケジューラからWebジョブを再実行すると、問題なく動作し始めます!

お役に立てれば。

4
Mostafa