私が ASP.NET で作成したのではないサイトを維持しています。
C#.NETで構築されています
サイトは、呼び出されたDLLを使用してデータベースにアクセスしますMegaTecDAL.dll
(注:このdllのコードはありません。dllとPDBのみです)
最近、サイトを別のデータベースを持つ別のサーバーに移動する必要があるため、データベースの接続文字列を変更する必要があります。
私はかなり簡単だと思った!
web.configやどこにも接続文字列が見つからなかったので、
Data Access Layer MegaTecDAL.DLL を逆コンパイルして、接続文字列の読み取り元を取得したところ、次のことがわかりました (通知: getzConnectionString)
namespace MegaTecDal.Properties
{
[CompilerGenerated]
[GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
internal sealed class Settings : ApplicationSettingsBase
{
private static Settings defaultInstance = (Settings) SettingsBase.Synchronized((SettingsBase) new Settings());
public static Settings Default
{
get
{
Settings settings = Settings.defaultInstance;
return settings;
}
}
[DefaultSettingValue("Data Source=old.server.address.com;Initial Catalog=getz;User ID=aUserName;Password=StrongPassword")]
[ApplicationScopedSetting]
[SpecialSetting(SpecialSetting.ConnectionString)]
[DebuggerNonUserCode]
public string getzConnectionString
{
get
{
return (string) this["getzConnectionString"];
}
}
static Settings()
{
}
}
}
接続文字列がデフォルトから取得されていることを認識しています。
しかし、新しい値を指定する方法が見つからないようです。
私は試した:
に追加するweb.config
<connectionStrings>
<add name="getzConnectionString" connectionString="Data Source=new.server.com;Initial Catalog=getz;User ID=aUserName;Password=StrongPassword" providerName="System.Data.SqlClient" />
</connectionStrings>
にも追加してみましたweb.config
<appSettings>
<add key="getzConnectionString" value="Data Source=new.server.com;Initial Catalog=getz;User ID=aUserName;Password=StrongPassword"/>
</appSettings>
上記のセクションで名前を付けたファイルを作成して、MegaTecDAL.dll.config
それを BIN/App_Data/App_Code & ルート フォルダーに配置しようとしましたが、それでも既定の接続文字列が呼び出されます。
また、 http://msdn.microsoft.com/en-us/library/8eyb2ct1.aspxごとにセクショングループとセクションを追加しようとしました
どこに置いてもそれはしません。