对Windows服务进行微小更改并将这些更改部署到生产暂存(Windows Server 2008)后,Windows服务无法启动。
事件日志仅显示
Windows检测到您的注册表文件仍被其他人使用 应用程序或服务。该文件现在将被卸载。该 保存您的注册表文件的应用程序或服务可能无法运行 之后恰当。
其中一项更改是NLog配置文件条目,该条目仅适用于生成构建设置,这要归功于Slow Cheetah的魔力。
答案 0 :(得分:0)
事实证明,生产NLog配置中存在非法的NLog配置设置。
NLog没有向事件日志写入任何诊断信息。在控制台模式下运行服务(我使用一种模式来检查/ console标志作为控制台应用程序而不是服务运行的服务),抛出了一个有用的异常:
Unhandled Exception: System.TypeInitializationException: The type initializer for 'My.Service' threw an exception.
NLog.NLogConfigurationException: Exception occurred when loading configuration from C:\MyService\NLog.config
---> System.NotSupportedException: Parameter levels not supported on FileTarget
经验教训:如果使用NLog的Windows服务无法在没有有意义的EventLog条目的情况下启动,请仔细检查NLog配置。
共享Q&A style希望这可以节省15分钟的时间让我整理出来。