2012-05-11 5 views
0

私は、Webアプリケーションで使用されるクラスライブラリを作成しています。アセンブリクラスの1つで発生する事の1つは、データベースにヒットすることです。通常、サービスからこれを行うと、接続文字列がweb.configファイルから抽出されます。クラスライブラリでは、どうやって同じように動作するのか分かりません。助言がありますか?クラスライブラリ/アセンブリからホストアプリケーションのweb.configファイルにアクセスするにはどうすればよいですか?

は今、私は、アセンブリ内の私の通常の設定の呼び出しを入れてみました:

protected readonly string _utiConnStr = 
System.Web.Configuration.WebConfigurationManager.ConnectionStrings["UTI"].ConnectionString; 

それは言って、pukes「オブジェクト参照がオブジェクトのインスタンスに設定されていません。」

+0

私はそれを試してみましたが、それが失敗しました。 "オブジェクト参照がオブジェクト インスタンスに設定されていません。" – Sinaesthetic

答えて

0

は、例えば、私がメール設定したい場合:

//open the webconfig 
Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(@"~/web.config"); 

// Get mail settings 
mailSettings = webConfig.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup; 
+0

本当にここで何が起こっているのですか?アセンブリから直接読み込みたい設定ファイルの場所を指定できますか? – Sinaesthetic

+0

私はこれにいくつかのマッピングの問題がありました。私は、var configMgr = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath);を使用しました。 this._utiConnStr = configMgr.ConnectionStrings.ConnectionStrings ["UTI"]。接続文字列。それでも失敗しました。私はVSを管理者で実行し、正常に動作しました。どうやらIISは適切な権限を持っています。 – Sinaesthetic

+0

あなたのケースで偽装を行う必要があるような場合は、IISユーザーがdbアクセスでユーザーを偽装するようにしてください。 – FlavorScape

関連する問題