複数のクライアントのデータを取得する WsCF サービスを作成しています。ビジネス マネージャ オブジェクトを参照するサービス レイヤがあります。基本的に、サービス呼び出しで、web.config からプロバイダーの種類 (コード内のカスタム列挙型) と接続文字列を取得したいと考えています。
何らかの理由で、コードがプロジェクト web.config の設定を見つけることができません。IIS Express を収集しており、VS 開発 Web サーバーが machine.config を参照しています。これをオーバーライドするにはどうすればよいですか。とてもイライラします。スニペットからわかるように、設定と接続文字列名は存在しますが、コードはそれを取得しません。
私のコード:
Private Sub GetDBInformation()
Dim config As System.Configuration.Configuration
config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Nothing)
If (config.AppSettings.Settings.Count > 0) Then
Dim Setting As System.Configuration.KeyValueConfigurationElement
Setting = config.AppSettings.Settings("DB TYPE")
If Not (Setting.Value = Nothing) Then
Select Case Setting.Value
Case "SQL SERVER"
provider = ProviderType.SqlServer
Case Else
provider = ProviderType.OleDb
End Select
End If
End If
If (config.ConnectionStrings.ConnectionStrings.Count > 0) Then
connection = config.ConnectionStrings.ConnectionStrings("UMADB").ConnectionString
End If
End Sub
web.config:
<connectionStrings>
<add name="UMADB"
connectionString="Data Source=***********;Initial Catalog=UMA;UserID=********;Password=***********"
providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="DB TYPE" value="SQL SERVER" />
</appSettings>