请原谅我这个可能很愚蠢的问题,总体上我还是不太熟悉ASP.NET架构。
Please forgive me this probably stupid question, I am still not too familiar with the ASP.NET architecture in general.
我继承了一个大项目,我打算到设置hangfire.io 。我知道我必须以某种方式初始化数据库上下文,但是我不想按照hangfire-docu的建议对其进行硬编码。
I inherited a large project, and I intend to setup hangfire.io. I understand that I have to somehow initialize the DB context, but I do not want to hardcode it as suggested by the hangfire-docu.
我的 API\Global.asax.cs 当前看起来如下,有趣的东西在 // Hangfire的东西:
My API\Global.asax.cs currently looks as follows, the interesting stuff begins after // Hangfire stuff:
using System.Web.Http; using System.Web.Http.ExceptionHandling; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; using Hangfire; namespace API { public class WebApiApplication : System.Web.HttpApplication { protected void Application_Start() { log4net.Config.XmlConfigurator.Configure(); GlobalConfiguration.Configuration.Services.Add(typeof(IExceptionLogger), new GlobalExceptionLogger()); GlobalConfiguration.Configuration.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler()); MvcHandler.DisableMvcResponseHeader = true; AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); MapperConfig.RegisterMapper(); // Hangfire stuff GlobalConfiguration.Configuration.UseSqlServerStorage("HardcodedContextString"); RecurringJob.AddOrUpdate("some-id", () => Console.WriteLine("My hangfire test."), "*/2 * * * 1-5"); } } }我的数据库上下文 myContext 似乎在 API\connections.config 内定义,其中包含以下几行:
My database context myContext seems to defined inside API\connections.config which contains the following lines:
<?xml version="1.0"?> <connectionStrings> <add name="myContext" connectionString="Data Source=localhost\sqlexpress;Initial Catalog=myContext;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /> </connectionStrings>我应该输入什么而不是 HardcodedContextString 使ASP.NET从相应的配置文件中读取连接字符串?
What shall I put instead of HardcodedContextString to make ASP.NET read the connection string from the respective configuration file?
PS:有趣的是, /下的两行/ Hangfire内容用红色下划线。我想念什么?
PS: Interestingly, both lines underneath // Hangfire stuff is underlined in red. What do I miss?
- 如何为Hangfire的mySQL数据库设置 connectionString?
- How do I set up 'connectionString' for a mySQL database for Hangfire?
string connString = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();
Hangfire.GlobalConfiguration.Configuration.UseSqlServerStorage(connString);
PS:来自 stackoverflow/a/6134384/1236044 我了解了如何从配置文件中获取连接字符串-感谢@ jbl 指出了这一点。 JBL还给了我有关名称空间冲突的提示。
PS: From stackoverflow/a/6134384/1236044 I learned how to obtain the connection string from the config file-- thanks @jbl for pointing me to that. JBL also gave me the hint about the name space conflict.
更多推荐
如何使用ASP.NET配置hangfire以从配置文件获取连接字符串?
发布评论