Eve*_*rra 4 connection-string nopcommerce
我正在使用 nopCommerce,我需要删除 settings.txt 文件中的连接字符串并插入 web.config 文件。我怎样才能做到这一点?
将连接字符串从 settings.txt 移到 web.config 的最直接方法是修改Nop.Core.Data.DataSettingsManager. 具体方法LoadSettings()和SaveSettings()方法。您可以将连接字符串存储在您想要的任何位置(最好在 web.config 中),只要这两种方法读取和写入配置即可。
DataSettingsManager可以在此 Gist 中找到支持在 web.config 中存储连接字符串的更新的粗略示例:http : //git.io/vUPcI只需将连接字符串从 settings.txt 复制到 web.config 并命名连接“ DefaultConnection”或相应地调整代码。
小智 5
只需做两步
替代两个方法LoadSettings,并SaveSettings在\nopCommerce\Libraries\Nop.Core\Data\DataSettingsManager.cs。来自@Stephen Kiningham 链接的代码
/// <summary>
/// Load settings
/// </summary>
/// <param name="filePath">File path; pass null to use default settings file path</param>
/// <returns></returns>
public virtual DataSettings LoadSettings(string filePath = null)
{
try
{
System.Configuration.Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath);
return new DataSettings
{
DataConnectionString = webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ConnectionString,
DataProvider = webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ProviderName
};
}
catch (NullReferenceException)
{
return new DataSettings();
}
}
/// <summary>
/// Save settings to a file
/// </summary>
/// <param name="settings"></param>
public virtual void SaveSettings(DataSettings settings)
{
if (null == settings) throw new ArgumentNullException("settings");
System.Configuration.Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath);
webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ConnectionString = settings.DataConnectionString;
webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ProviderName = settings.DataProvider;
webConfig.Save();
}
Run Code Online (Sandbox Code Playgroud)将连接字符串添加到您的网络配置 web.config
/// <summary>
/// Load settings
/// </summary>
/// <param name="filePath">File path; pass null to use default settings file path</param>
/// <returns></returns>
public virtual DataSettings LoadSettings(string filePath = null)
{
try
{
System.Configuration.Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath);
return new DataSettings
{
DataConnectionString = webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ConnectionString,
DataProvider = webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ProviderName
};
}
catch (NullReferenceException)
{
return new DataSettings();
}
}
/// <summary>
/// Save settings to a file
/// </summary>
/// <param name="settings"></param>
public virtual void SaveSettings(DataSettings settings)
{
if (null == settings) throw new ArgumentNullException("settings");
System.Configuration.Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath);
webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ConnectionString = settings.DataConnectionString;
webConfig.ConnectionStrings.ConnectionStrings["DefaultConnection"].ProviderName = settings.DataProvider;
webConfig.Save();
}
Run Code Online (Sandbox Code Playgroud)小智 1
请将其添加到 Nop.Web 项目下的 web.config 中:
<connectionStrings>
<add name="MyConnectionString"
connectionString="Data Source=serverName;Initial Catalog=DBName;Persist Security Info=False;UserID=userName;Password=password"
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
此致。