2015-12-08 36 views
0

看来我需要配置日志记录。我可以增加就业机会&看到他们在/迟发型页,但如果我停用app.UseHangfireServer他们不会解雇()。如何解决Hangfire配置错误?

因为它是一个简单的基于文件夹的网站,我从运行示例迟发型MVC项目复制必需的dll文件到我的bin文件夹。如果需要,我如何配置记录器?

Error location: 

Line 17:   { 
Line 18:    app.UseHangfireServer(); 
Line 19:    app.UseHangfireDashboard(); 
Line 20: 

Source File: f:\hangfire\App_Code\Startup.cs Line: 18 

堆栈跟踪:

[ConfigurationErrorsException: The configuration section for Logging cannot be found in the configuration source.] 
    Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterStructureHolderCustomFactory.ValidateLoggingSettings(LoggingSettings loggingSettings) +64 
    Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterStructureHolderCustomFactory.CreateObject(IBuilderContext context, String name, IConfigurationSource configurationSource, ConfigurationReflectionCache reflectionCache) +49 
    Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterCustomFactory.CreateObject(IBuilderContext context, String name, IConfigurationSource configurationSource, ConfigurationReflectionCache reflectionCache) +66 
    Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.ConfiguredObjectStrategy.BuildUp(IBuilderContext context, Type t, Object existing, String id) +83 
    Microsoft.Practices.ObjectBuilder.BuilderStrategy.BuildUp(IBuilderContext context, Type typeToBuild, Object existing, String idToBuild) +59 
    Microsoft.Practices.ObjectBuilder.SingletonStrategy.BuildUp(IBuilderContext context, Type typeToBuild, Object existing, String idToBuild) +169 
    Microsoft.Practices.ObjectBuilder.BuilderStrategy.BuildUp(IBuilderContext context, Type typeToBuild, Object existing, String idToBuild) +59 
    Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.ConfigurationNameMappingStrategy.BuildUp(IBuilderContext context, Type t, Object existing, String id) +102 
    Microsoft.Practices.ObjectBuilder.BuilderBase`1.DoBuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies) +217 
    Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies) +127 
    Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp(IReadWriteLocator locator, String idToBuild, Object existing, PolicyList[] transientPolicies) +87 
    Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp(IReadWriteLocator locator, IConfigurationSource configurationSource) +135 
    Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp(IConfigurationSource configurationSource) +53 
    Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterFactory.Create() +29 
    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.get_Writer() +106 
    lambda_method(Closure , String , TraceEventType) +252 
    Hangfire.Logging.LogProviders.EntLibLogger.Log(LogLevel logLevel, Func`1 messageFunc, Exception exception) +60 
    Hangfire.Logging.LoggerExecutionWrapper.Log(LogLevel logLevel, Func`1 messageFunc, Exception exception) +87 
    Hangfire.Logging.LogExtensions.IsInfoEnabled(ILog logger) +42 
    Hangfire.Logging.LogExtensions.Info(ILog logger, String message) +27 
    Hangfire.BackgroundJobServer..ctor(BackgroundJobServerOptions options, JobStorage storage, IEnumerable`1 additionalProcesses) +236 
    Hangfire.AppBuilderExtensions.UseHangfireServer(IAppBuilder builder, JobStorage storage, BackgroundJobServerOptions options, IBackgroundProcess[] additionalProcesses) +90 
    Hangfire.AppBuilderExtensions.UseHangfireServer(IAppBuilder builder, BackgroundJobServerOptions options, JobStorage storage) +42 
    Hangfire.AppBuilderExtensions.UseHangfireServer(IAppBuilder builder, BackgroundJobServerOptions options) +35 
    Hangfire.AppBuilderExtensions.UseHangfireServer(IAppBuilder builder) +46 
    MyWebApplication.Startup.Configuration(IAppBuilder app) in f:\hangfire\App_Code\Startup.cs:18 

回答

0

我有两个启动点:

[assembly: OwinStartup(typeof(MyWebApplication.Startup))] 

[ApplicationStartup] 

删除[ApplicationStartup]和movind的迟发型相关的代码放到固定的问题的其他地方。

0

我个人使用ELMAH(其中迟发型在新版本自动检测)。

但如果你想关闭它,设置日志提供空应该做的伎俩(你最好把这个在​​您的应用程序的启动方法,这将是不同的,这取决于你是什么样的机制通过执行启动时)

LogProvider.SetCurrentLogProvider(null); 

来源:https://discuss.hangfire.io/t/turn-off-logging/1150

+0

它并没有帮助。该代码已执行,我收到了相同的配置未找到错误。 –

+0

你使用的是什么版本的hangfire,你的初始化代码是什么样的?我只是试图在一个全新的项目中重新创建你的问题(刚刚安装了hangfire,启动了后台服务器,没有任何配置用于日志记录),它运行时没有任何异常。 – MutantNinjaCodeMonkey

0

你有适用您的解决方案的任何记录库?作为迟发型文件说:

从迟发型1.3.0开始,你不需要做任何事情,如果你 应用程序已经使用了以下库之一,通过 反射(这样迟发型本身不依赖于他们中的任何一个)。日志实现是通过检查相应 类型的在以下所示的顺序中存在自动选择。

Serilog NLOG log4net的 EntLib 登录放大镜 ELMAH 如果你想记录 迟发型事件并没有安装日志库,请选择上面的 之一,并指其文档

所以据我所知你需要一些上面列出的日志库。

0

您必须添加日志提供。作为示例,您可以添加内置提供程序,如下所示:

LogProvider.SetCurrentLogProvider(new ColouredConsoleLogProvider());

它应该解决错误。