私はAzure/Cloudベースのプロジェクトを持っています(単一プロジェクトのみ)。プロジェクトにWCF/WebRoleが追加されています。私のWCFサービスは、エンティティフレームワークを使用してSQLAzureデータベースと通信しています。これはとてもうまくいっています。私のwebrole.csは接続文字列を見つけることができません
<connectionStrings>
<add name="CommuteEntities" connectionString="metadata=res://*/Db.CommuteDataModel.csdl|res://*/Db.CommuteDataModel.ssdl|res://*/Db.CommuteDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=<db-here>.database.windows.net;initial catalog=dandr;persist security info=True;user id=<user-id-here>;password=<password-here>;multipleactiveresultsets=True;App=EntityFramework" " providerName="System.Data.EntityClient" />
</connectionStrings>
すべてのこれまでのところうまくだ:私は、次のしているプロジェクトのweb.configファイルで
。だから私はスケジュールされたバックグラウンド処理を(タイマーと着信要求に基づいて)少量行いたいと思っています。仕事に対するWorkerRoleの開始を正当化するには小さすぎるタスク。
だからではなく、私はWebRoleに次のようなものを作成した接続文字列を取得するためのラインがうまく動作していないよう何らかの理由WebRole.cs
public override void Run()
{
while (true)
{
//This is for debug purposes:
string str = ConfigurationManager.ConnectionStrings["CommuteEntities"].ToString();
BackgroundProcessing.BackgroundProcessing.BackgroundProcess();
Thread.Sleep(150000); //2.5mins
}
}
を投影します。ただし、同じコードをWCFサービスに組み込むことは効果的です。
このソリューションには1つのプロジェクトしかありません。WebRole.cs
は、動作中のWCFサービスと同じプロジェクトに配置されています。
注:接続文字列を取得するのはデバッグのためです。
The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.
注2::私はちょうどそれがように思われることに気づいた私が持っている根本的な問題は、私のWebRole.csエンティティにアクセスしようとしたとき、それは次の例外メッセージを取得することです私のWebRole.cs
にあるものは、Web.config
ファイルで設定されたものは見えません。私が正しくやっていないことがあるのですか?
誰もがこれを前に出くわしたり、アイデアを持っていますか?
私はDamienと一緒です。また、クラウドサービスの設定にこのようなものを置くべきだと言っています。この移動によって、アプリケーションを再デプロイしなくても資格情報をローテーションできます。 – BrentDaCodeMonkey