2012-04-04 9 views
4

私はASP.NET Universal Providersを使用するAzureにソリューションを配備しようとしています。 Web.configではなく、Azure設定で接続文字列を保存して、再デプロイせずに変更することができます。私は設定から​​ロードし、ConfigurationManager.ConnectionStringsコレクションに追加することを考えていましたが、それは読み取り専用です。これを克服するための反射ハッキングがありますが、それは正しい方法のようには見えません。私はプロバイダクラスから派生して接続文字列を設定できる独自のプロバイダクラスを作成することも考えていましたが、接続文字列をオーバーライドするように設定するプロパティは表示されません。どのようなアイデアをプロバイダを使用して私のweb.configに接続文字列を持っていない?ASP.NETユニバーサルプロバイダの接続文字列をプログラムによって設定する方法はありますか?

+0

、私は、接続文字列が設定されていることがわかりますInitializeメソッドではプライベートプロパティです。 – Bryan

答えて

1

Azure設定ファイルに設定を入れてから、スタートアップタスクを書き込むか、WebRole.cs OnStartでIIS管理APIにアクセスし、そこにweb.configファイルを正しい接続文字列で更新することをお勧めします。そうすれば、接続文字列にプログラム的にアクセスする必要はありませんが、あなたが望むことはできます。あなたはあなたに欠けているものをやっていないAPIのalthoughtを使用してのいくつかのサンプルについては、このブログの記事をチェックアウトすることができ

:ILSpyを使用して

http://blogs.msdn.com/b/tom/archive/2011/02/18/installing-and-using-an-httpmodule-in-windows-azure.aspx

+0

今、私はソースを入手し、必要な変更を加えることを検討しています。 ASPユニバーサルプロバイダのソースが入手可能であることはわかりませんが、2.0バージョンが利用可能です(http://weblogs.asp.net/scottgu/archive/2006/04/13/442772.aspx)。これは:http://efmembership.codeplex.com/ – Bryan

+0

@ブライアン - あなたは自分でSystem.Web.Providers.dllを逆コンパイルすることができます。無料のTelerik JustDecompileを使用しました。 – Win

+0

私は、Microsoft.Web.Administration APIを使用して、この投稿に類似した私の紺色の設定ファイルの値をロールスタートアップ時にWeb設定の接続文字列を変更するソリューションを持っています。http://blog.elastacloud.com/2011/ 05/13/azure-howto-programmatically-modify-web-config-on-webrole-startup /私は理想的ではないかもしれない謝辞を提出したことを確認しなければならなかったので、起動タスクの権限を引き上げる。 – Bryan

関連する問題