WebMatrix を介して Azure に公開している MVC5 プロジェクトがあり、web.config で本番環境のデータベース サーバーの接続文字列を次のように定義しています。
<configuration>
<connectionStrings>
<add
name="MyProjectContainer"
providerName="System.Data.EntityClient"
connectionString="[metadata stuff];
provider=System.Data.SqlClient;
provider connection string="
data source=x1.database.windows.net,1433;
initial catalog=MyProject;
Uid=x@x1;
app=EntityFramework;
Pwd=xxx
""
/>
</connectionStrings>
...ローカル開発の場合、web.Debug.config に次のようなエントリがあります。
<connectionStrings>
<add xdt:Transform="Replace" xdt:Locator="Match(name)"
name="MyProjectContainer"
providerName="System.Data.EntityClient"
connectionString="[metadata stuff];
provider=System.Data.SqlClient;
provider connection string="
data source=MyDevServer;
initial catalog=MyProject;
integrated security=True;
multipleactiveresultsets=True;
App=EntityFramework
""
/>
connectionString
web.Release.config の変換を使用して web.config を空にすることはうまくいかないようだったので、このアプローチを選択しました。アプリを発行すると Azure で動作しますが、ローカルで実行しようとすると、Visual Studio はローカル サーバーではなく Azure データベースに接続しようとします。
だから私は2つの質問があります:
WebMatrix でパブリッシュするときに変換が機能しないということで、何が欠けている可能性がありますか? 私がそれを機能させることができれば
connectionString
、メインの web.config を空にし、web.Debug.config と web.Release.config に正しい値を入れることができるからです。変換を行う方法がわからない Visual Studio の何が問題になっていますか?
誰かがこれに苦労しましたか?