27

IIS7 を実行している Windows 2008 r2 サーバーに Web サイトを展開する際に問題が発生しました。以前に別のサイトをこのサーバーにデプロイしました。Web デプロイがサーバーに接続してファイルをコピーしていますが、次のエラーが表示されます。

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 のパッケージ化/発行] タブで宛先データベースとソース データベースの両方の接続文字列を明示的に設定しましたが、何が問題なのか途方に暮れています。

何か案は?

4

6 に答える 6

15

Leniel の回答に加えて、SqlClient または Entity Framework Code First を使用していないためにチェックボックスが表示されない場合は、一時的に web.config の接続文字列の providerName を System.Data.SqlClient に設定してから戻ってください。パブリッシュ設定に移動して、チェックボックスをオフにします。

于 2013-11-25T16:54:38.460 に答える
12

私は同じ問題を抱えていました:

2>C:...\Microsoft.Web.Publishing.targets(4270,5): エラー: 'db-Web.config 接続文字列' 引数を null または空にすることはできません。2>C:...\Microsoft.Web.Publishing.targets(4270,5): エラー: 'dbAudit-Web.config 接続文字列' 引数を null または空にすることはできません。2>C:...\Microsoft.Web.Publishing.targets(4270,5): エラー: 'dbLog-Web.config 接続文字列' 引数を null または空にすることはできません。

私が使用していたように:

<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>すると、次のようになります。

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

このエントリを削除するだけで、すべてが再び機能していました...

于 2014-10-02T15:59:34.943 に答える
0

Web アプリケーションを Azure Web サーバーにデプロイしたときに、同じ問題が発生しました。新しいサーバーを作成することで解決しました。その時点で、以前にそのサーバーに別のアプリケーションがあったことに気付きました。そのアプリケーションは、2 番目のアプリケーションによって上書きされていないコンテキスト名を使用していたため、2 番目のアプリケーションによって上書きされた接続文字列を探し続けていました。サーバーをクリアすると問題が解決する可能性があると思います。

于 2013-12-27T19:53:36.397 に答える