我正在维护一个不是我用 ASP.NET 构建的网站。
它是用 C#.NET 构建的
该站点使用名为 MegaTecDAL.dll
的 DLL 访问数据库
(注意:我没有这个dll的代码,只有dll和PDB)
最近,我们需要将站点移动到具有另一个数据库的另一台服务器,因此需要更改数据库的连接字符串。
我认为这应该很简单!
我没有在 web.config 或任何地方找到连接字符串,
我反编译了数据访问层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
无论我把它放在哪里,它都不起作用。
最佳答案
我认为您需要包含要配置的 ConnectionString 的命名空间:
<connectionStrings>
<add name="MegaTecDal.Properties.Settings.getzConnectionString"
connectionString="yourNewConnectionString"
providerName="System.Data.SqlClient" />
</connectionStrings>
关于.net - 无法在 C# web.config 中创建连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993029/