ASP.NET杂谈-一切都从web.config说起(2)(ConfigSections详解-下)
还是接着上一篇说起,在上两篇中主要和大家探讨了ConfigSection的几种常用形式,并举例几个例子说明了一下。其实它们主要都是继承System.Configuration.ConfigurationSection类来创建自定义配置节。其实在.Net Framework 1.0和1.1的时候,我们是实现System.Configuration.IConfigurationSectionHandler接口来创建自定义配置节,现在微软已经不建议这样使用了,如果有兴趣的朋友可以看看这个《使用 IConfigurationSectionHandler 创建自定义配置节》。
今天我们就举两个具体的实例来说明一下,其实也是在大家做项目的时候经常要用的两个东东:log4net和EnterpriseLibrary(微软企业库),以下就简单的说明一下他们是怎么使用的。
Log4net的使用
1、log4net的介绍
log4net是一个可以帮助我们(程序员)把日志信息输出到各种不同目标的.net类库。它可以很容易集成到开发项目中,实现程序调试和运行的时候的日志信息输出。它主要由Logger, Appender, Filter, Layout 4个组件构成, 一般情况下后3个组件在配置文件中配置。
2、Log4net的使用
下面就用一个简单的DEMO说明一下;
首先,我们需要先在web.config(或app.config)中配置Log4net,如下:
- 1: <configSections>
- 2: <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
- 3: </configSections>
- 4: <log4net>
- 5: <root>
- 6: <appender-ref ref="ConsoleAppender" />
- 7: <appender-ref ref="FileAppenderInfo" />
- 8: </root>
- 9:
- 10: <appender name="FileAppenderInfo" type="log4net.Appender.FileAppender">
- 11: <param name="File" value="log-file.txt" />
- 12: <param name="AppendToFile" value="true" />
- 13: <layout type="log4net.Layout.PatternLayout">
- 14: <header value="
- ----------------------header--------------------------
- " />
- 15: <param name="ConversionPattern" value="%d [%t] %-5p %c- %m%n" />
- 16: </layout>
- 17: </appender>
- 18:
- 19: <appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender" >
- 20: <mapping>
- 21: <level value="ERROR" />
- 22: <foreColor value="White" />
- 23: <backColor value="Red, HighIntensity" />
- 24: </mapping>
- 25: <mapping>
- 26: <level value="DEBUG" />
- 27: <foreColor value="Yellow" />
- 28: </mapping>
- 29: <layout type="log4net.Layout.PatternLayout">
- 30: <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
- 31: </layout>
- 32: <filter type="log4net.Filter.LevelRangeFilter">
- 33: <param name="LevelMin" value="INFO" />
- 34: <param name="LevelMax" value="FATAL" />
- 35: </filter>
- 36: </appender>
- 37: </log4net>
其次,就可以在程序中使用了。
- 1: log4net.ILog log = log4net.LogManager.GetLogger("kevindiao");
- 2: log4net.Config.XmlConfigurator.Configure();
- 3: log.Info(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
- 4: log.Info("kevindiao");
- 5: log.Error("Hello world!");
- 6: Console.WriteLine("log4net run close");
看看运行的结果1:
结果2:
----------------------header--------------------------
2011-04-07 23:06:19,361 [5084] INFO kevindiao- KevinDiao.Log4netTest.Program
2011-04-07 23:06:19,441 [5084] INFO kevindiao- kevindiao
2011-04-07 23:06:19,441 [5084] ERROR kevindiao- Hello world!
这里我就不详细说明他的配置和使用了,大家可以的博客园中查找相关的介绍。
微软企业库(EnterpriseLibrary 5.0)
1、企业库的介绍
微软企业库是一系列应用程序块的集合,目标是帮助开发人员来处理常见的企业应用开发遇到的挑战。它包含以下主要的模块(5.0):
- Caching Application Block.
开发人员可以使用此应用模块与他们程序里的缓存协同工作。 它支持可拔插与持久化的存储机制。
- Cryptography Application Block.
开发人员可以使用此应用模块与他们程序里的哈希与对称加密算法协同工作。
- Data Access Application Block.
开发人员可以使用此模块与他们系统中的标准的Database功能协同工作,包括同步和一部数据访问,可以返回的多种数据格式
- Exception Handling Application Block.
开发人员可以使用此模块为异常处理创建持久化策略,处理在企业层各个层次之间发生的异常。
- Logging Application Block.
开发人员可以使用此模块来处理系统中的不同的日志需求。这次发布改进了日志的性能。
- Policy Injection Application Block.
此模块可以用来实现侦听策略,对于一些常见的特性实现的简化。比如日志、缓存、异常处理和验证。
- Security Application Block.
开发人员可以使用这个模块来与他们系统中的授权和安全缓存功能协同工作。
- Unity Application Block.
开发者可以使用此模块作为轻量级的、可扩展的依赖注入容器,带有构造函数支持、熟悉和方法调用注入,也包含实例和类型注入。
- Validation Application Block.
开发者可以使用此模块为业务对象去出创建建验证规则,它可以跨越不同的应用程序层。
2、企业库简单的使用
这里就用Logging Application Block来举例说明以下:
首页,我们先开以下web.config中的配置:
- 1: <configSections>
- 2: <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings,
- 3: Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=null"
- 4: requirePermission="true" />
- 5: </configSections>
- 6: <loggingConfiguration name="" tracingEnabled="true" defaultCategory="General">
- 7: <listeners>
- 8: <add name="Event Log Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener,
- 9: Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=null"
- 10: listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData,
- 11: Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=null"
- 12: source="ygmh" formatter="Text Formatter"
- 13: log="" machineName="." traceOutputOptions="None" />
- 14: </listeners>
- 15: <formatters>
- 16: <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter,
- 17: Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=null"
- 18: template="Timestamp: {timestamp}{newline}
- Message: {message}{newline}
- Category:
- 19: {category}{newline}
- Priority: {priority}{newline}
- EventId: {eventid}{newline}
- 20: Severity: {severity}{newline}
- Title:{title}{newline}
- Machine: {localMachine}{newline}
- 21: App Domain: {localAppDomain}{newline}
- ProcessId: {localProcessId}{newline}
- 22: Process Name: {localProcessName}{newline}
- Thread Name: {threadName}{newline}
- 23: Win32 ThreadId:{win32ThreadId}{newline}
- Extended Properties: {dictionary({key} - {value}{newline})}"
- 24: name="Text Formatter" />
- 25: </formatters>
- 26: <categorySources>
- 27: <add switchValue="All" name="General">
- 28: <listeners>
- 29: <add name="Event Log Listener" />
- 30: </listeners>
- 31: </add>
- 32: </categorySources>
- 33: <specialSources>
- 34: <allEvents switchValue="All" name="All Events" />
- 35: <notProcessed switchValue="All" name="Unprocessed Category" />
- 36: <errors switchValue="All" name="Logging Errors & Warnings">
- 37: <listeners>
- 38: <add name="Event Log Listener" />
- 39: </listeners>
- 40: </errors>
- 41: </specialSources>
配置文件的内容可以用企业库自带的配置文件生成程序来生成,位置在安装目录的bin文件夹中。
其次,再看一下在程序中是如何使用的:
- 1: LogEntry logEntry = new LogEntry();
- 2: logEntry.EventId = 1;
- 3: logEntry.Priority = 1;
- 4: logEntry.Title = "企业库";
- 5: logEntry.Categories.Add("企业库");
- 6: logEntry.Categories.Add("企业库 5.0");
- 7: logEntry.Message = "企业库日志应用程序模块工作原理";
- 8: Logger.Write(logEntry, "General");
- 9: Console.WriteLine("日志写入成功!");
- 10: Console.ReadLine();
最后在看看运行结果,
在日志查看器(eventvwr.msc)查看日志日志内容:
- 1: Timestamp: 2011/4/17 3:19:30
- 2:
- 3: Message: Timestamp: 2011/4/17 3:19:30
- 4: Message: 企业库日志应用程序模块工作原理
- 5: Category: 企业库, 企业库 5.0
- 6: Priority: 1
- 7: EventId: 1
- 8: Severity: Information
- 9: Title:企业库
- 10: Machine: KEVINDIAO-PC
- 11: App Domain: KevinDiao.EntLib.LogApp.vshost.exe
- 12: ProcessId: 3400
- 13: Process Name:"************************"
- 14: \KevinDiao.EntLib.LogApp.vshost.exe
- 15: Thread Name:
- 16: Win32 ThreadId:4928
- 17: Extended Properties:
- 18:
- 19: Category: General
- 20:
- 21: Priority: -1
- 22:
- 23: EventId: 1
- 24:
- 25: Severity: Information
- 26:
- 27: Title:
- 28:
- 29: Machine: KEVINDIAO-PC
- 30:
- 31: App Domain: KevinDiao.EntLib.LogApp.vshost.exe
- 32:
- 33: ProcessId: 3400
- 34:
- 35: Process Name:"************************"
- 36: \KevinDiao.EntLib.LogApp.vshost.exe
- 37:
- 38: Thread Name:
- 39:
- 40: Win32 ThreadId:4928
- 41:
- 42: Extended Properties:
结果中的Process Name的物理路径隐藏了。
参考:
REFERENCE FROM : http://www.cnblogs.com/diaojia/archive/2011/04/17/2018770.html
还是接着上一篇说起,在上两篇中主要和大家探讨了ConfigSection的几种常用形式,并举例几个例子说明了一下。其实它们主要都是继承System.Configuration.ConfigurationSection类来创建自定义配置节。其实在.Net Framework 1.0和1.1的时候,我们是实现System.Configuration.IConfigurationSectionHandler接口来创建自定义配置节,现在微软已经不建议这样使用了,如果有兴趣的朋友可以看看这个《使用 IConfigurationSectionHandler 创建自定义配置节》。
今天我们就举两个具体的实例来说明一下,其实也是在大家做项目的时候经常要用的两个东东:log4net和EnterpriseLibrary(微软企业库),以下就简单的说明一下他们是怎么使用的。
Log4net的使用
1、log4net的介绍
log4net是一个可以帮助我们(程序员)把日志信息输出到各种不同目标的.net类库。它可以很容易集成到开发项目中,实现程序调试和运行的时候的日志信息输出。它主要由Logger, Appender, Filter, Layout 4个组件构成, 一般情况下后3个组件在配置文件中配置。
2、Log4net的使用
下面就用一个简单的DEMO说明一下;
首先,我们需要先在web.config(或app.config)中配置Log4net,如下:
- 1: <configSections>
- 2: <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
- 3: </configSections>
- 4: <log4net>
- 5: <root>
- 6: <appender-ref ref="ConsoleAppender" />
- 7: <appender-ref ref="FileAppenderInfo" />
- 8: </root>
- 9:
- 10: <appender name="FileAppenderInfo" type="log4net.Appender.FileAppender">
- 11: <param name="File" value="log-file.txt" />
- 12: <param name="AppendToFile" value="true" />
- 13: <layout type="log4net.Layout.PatternLayout">
- 14: <header value="
- ----------------------header--------------------------
- " />
- 15: <param name="ConversionPattern" value="%d [%t] %-5p %c- %m%n" />
- 16: </layout>
- 17: </appender>
- 18:
- 19: <appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender" >
- 20: <mapping>
- 21: <level value="ERROR" />
- 22: <foreColor value="White" />
- 23: <backColor value="Red, HighIntensity" />
- 24: </mapping>
- 25: <mapping>
- 26: <level value="DEBUG" />
- 27: <foreColor value="Yellow" />
- 28: </mapping>
- 29: <layout type="log4net.Layout.PatternLayout">
- 30: <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
- 31: </layout>
- 32: <filter type="log4net.Filter.LevelRangeFilter">
- 33: <param name="LevelMin" value="INFO" />
- 34: <param name="LevelMax" value="FATAL" />
- 35: </filter>
- 36: </appender>
- 37: </log4net>
其次,就可以在程序中使用了。
- 1: log4net.ILog log = log4net.LogManager.GetLogger("kevindiao");
- 2: log4net.Config.XmlConfigurator.Configure();
- 3: log.Info(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
- 4: log.Info("kevindiao");
- 5: log.Error("Hello world!");
- 6: Console.WriteLine("log4net run close");
看看运行的结果1:
结果2:
----------------------header--------------------------
2011-04-07 23:06:19,361 [5084] INFO kevindiao- KevinDiao.Log4netTest.Program
2011-04-07 23:06:19,441 [5084] INFO kevindiao- kevindiao
2011-04-07 23:06:19,441 [5084] ERROR kevindiao- Hello world!
这里我就不详细说明他的配置和使用了,大家可以的博客园中查找相关的介绍。
微软企业库(EnterpriseLibrary 5.0)
1、企业库的介绍
微软企业库是一系列应用程序块的集合,目标是帮助开发人员来处理常见的企业应用开发遇到的挑战。它包含以下主要的模块(5.0):
- Caching Application Block.
开发人员可以使用此应用模块与他们程序里的缓存协同工作。 它支持可拔插与持久化的存储机制。
- Cryptography Application Block.
开发人员可以使用此应用模块与他们程序里的哈希与对称加密算法协同工作。
- Data Access Application Block.
开发人员可以使用此模块与他们系统中的标准的Database功能协同工作,包括同步和一部数据访问,可以返回的多种数据格式
- Exception Handling Application Block.
开发人员可以使用此模块为异常处理创建持久化策略,处理在企业层各个层次之间发生的异常。
- Logging Application Block.
开发人员可以使用此模块来处理系统中的不同的日志需求。这次发布改进了日志的性能。
- Policy Injection Application Block.
此模块可以用来实现侦听策略,对于一些常见的特性实现的简化。比如日志、缓存、异常处理和验证。
- Security Application Block.
开发人员可以使用这个模块来与他们系统中的授权和安全缓存功能协同工作。
- Unity Application Block.
开发者可以使用此模块作为轻量级的、可扩展的依赖注入容器,带有构造函数支持、熟悉和方法调用注入,也包含实例和类型注入。
- Validation Application Block.
开发者可以使用此模块为业务对象去出创建建验证规则,它可以跨越不同的应用程序层。
2、企业库简单的使用
这里就用Logging Application Block来举例说明以下:
首页,我们先开以下web.config中的配置:
- 1: <configSections>
- 2: <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings,
- 3: Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=null"
- 4: requirePermission="true" />
- 5: </configSections>
- 6: <loggingConfiguration name="" tracingEnabled="true" defaultCategory="General">
- 7: <listeners>
- 8: <add name="Event Log Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener,
- 9: Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=null"
- 10: listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData,
- 11: Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=null"
- 12: source="ygmh" formatter="Text Formatter"
- 13: log="" machineName="." traceOutputOptions="None" />
- 14: </listeners>
- 15: <formatters>
- 16: <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter,
- 17: Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=null"
- 18: template="Timestamp: {timestamp}{newline}
- Message: {message}{newline}
- Category:
- 19: {category}{newline}
- Priority: {priority}{newline}
- EventId: {eventid}{newline}
- 20: Severity: {severity}{newline}
- Title:{title}{newline}
- Machine: {localMachine}{newline}
- 21: App Domain: {localAppDomain}{newline}
- ProcessId: {localProcessId}{newline}
- 22: Process Name: {localProcessName}{newline}
- Thread Name: {threadName}{newline}
- 23: Win32 ThreadId:{win32ThreadId}{newline}
- Extended Properties: {dictionary({key} - {value}{newline})}"
- 24: name="Text Formatter" />
- 25: </formatters>
- 26: <categorySources>
- 27: <add switchValue="All" name="General">
- 28: <listeners>
- 29: <add name="Event Log Listener" />
- 30: </listeners>
- 31: </add>
- 32: </categorySources>
- 33: <specialSources>
- 34: <allEvents switchValue="All" name="All Events" />
- 35: <notProcessed switchValue="All" name="Unprocessed Category" />
- 36: <errors switchValue="All" name="Logging Errors & Warnings">
- 37: <listeners>
- 38: <add name="Event Log Listener" />
- 39: </listeners>
- 40: </errors>
- 41: </specialSources>
配置文件的内容可以用企业库自带的配置文件生成程序来生成,位置在安装目录的bin文件夹中。
其次,再看一下在程序中是如何使用的:
- 1: LogEntry logEntry = new LogEntry();
- 2: logEntry.EventId = 1;
- 3: logEntry.Priority = 1;
- 4: logEntry.Title = "企业库";
- 5: logEntry.Categories.Add("企业库");
- 6: logEntry.Categories.Add("企业库 5.0");
- 7: logEntry.Message = "企业库日志应用程序模块工作原理";
- 8: Logger.Write(logEntry, "General");
- 9: Console.WriteLine("日志写入成功!");
- 10: Console.ReadLine();
最后在看看运行结果,
在日志查看器(eventvwr.msc)查看日志日志内容:
- 1: Timestamp: 2011/4/17 3:19:30
- 2:
- 3: Message: Timestamp: 2011/4/17 3:19:30
- 4: Message: 企业库日志应用程序模块工作原理
- 5: Category: 企业库, 企业库 5.0
- 6: Priority: 1
- 7: EventId: 1
- 8: Severity: Information
- 9: Title:企业库
- 10: Machine: KEVINDIAO-PC
- 11: App Domain: KevinDiao.EntLib.LogApp.vshost.exe
- 12: ProcessId: 3400
- 13: Process Name:"************************"
- 14: \KevinDiao.EntLib.LogApp.vshost.exe
- 15: Thread Name:
- 16: Win32 ThreadId:4928
- 17: Extended Properties:
- 18:
- 19: Category: General
- 20:
- 21: Priority: -1
- 22:
- 23: EventId: 1
- 24:
- 25: Severity: Information
- 26:
- 27: Title:
- 28:
- 29: Machine: KEVINDIAO-PC
- 30:
- 31: App Domain: KevinDiao.EntLib.LogApp.vshost.exe
- 32:
- 33: ProcessId: 3400
- 34:
- 35: Process Name:"************************"
- 36: \KevinDiao.EntLib.LogApp.vshost.exe
- 37:
- 38: Thread Name:
- 39:
- 40: Win32 ThreadId:4928
- 41:
- 42: Extended Properties:
结果中的Process Name的物理路径隐藏了。
参考:
ASP.NET杂谈-一切都从web.config说起(2)(ConfigSections详解-下)的更多相关文章
- ASP.NET杂谈-一切都从web.config说起(2)(ConfigSections详解-上 )
ConfigSections的结构 首先我们先回顾一下ConfigSections的结构和它子节点的说明,如下: 1: <configSections> 2: <sectionGro ...
- ASP.NET杂谈-一切都从web.config说起(2)(ConfigSections详解-中)
我们就接着上一篇继续说,上一篇中介绍了ConfigSection的结构和两个简单的DEMO,本篇就说一下SectionGroup.ConfigurationElementCollection和key/ ...
- 10 Things ASP.NET Developers Should Know About Web.config Inheritance and Overrides(转)
10 Things ASP.NET Developers Should Know About Web.config Inheritance and Overrides Wednesday, Janua ...
- WCF项目问题2-无法激活服务,因为它需要 ASP.NET 兼容性。没有未此应用程序启用 ASP.NET 兼容性。请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 属性设置为 Required 以外的值。
无法激活服务,因为它需要 ASP.NET 兼容性.没有未此应用程序启用 ASP.NET 兼容性.请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibility ...
- SAE上传web应用(包括使用数据库)教程详解及问题解惑
转自:http://blog.csdn.net/baiyuliang2013/article/details/24725995 SAE上传web应用(包括使用数据库)教程详解及问题解惑: 最近由于工作 ...
- ASP.NET MVC 5 学习教程:Edit方法和Edit视图详解
原文 ASP.NET MVC 5 学习教程:Edit方法和Edit视图详解 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 ...
- 【译】ASP.NET MVC 5 教程 - 7:Edit方法和Edit视图详解
原文:[译]ASP.NET MVC 5 教程 - 7:Edit方法和Edit视图详解 在本节中,我们继续研究生成的Edit方法和视图.但在研究之前,我们先将 release date 弄得好看一点.打 ...
- Java web 入门知识 及HTTP协议详解
Java web 入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...
- 巨人大哥谈Web应用中的Session(session详解)
巨人大哥谈Web应用中的Session(session详解) 虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术. ...
随机推荐
- Color国际青年公寓
Color国际青年公寓介绍.md-/Users/zjh/Documents html{font-family: sans-serif;-ms-text-size-adjust: 100%;-webki ...
- 在嵌入式开发板中运行程序提示-/bin/sh: ./xx: not found的解决办法
今天拿着我的tiny6410板子,在虚拟机上用 $arm-linux-gcc he.c -o he 编译后放到tiny6410的文件系统中提示 -/bin/sh: ./xx: not found 后来 ...
- jsp的九大内置对象和四大作用域
定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量? JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):? 1.request对象(作用域)? 客户 ...
- bzoj3223 文艺平衡树 (treap or splay分裂+合并)
3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 3313 Solved: 1883 [Submit][S ...
- 为什么xcode7请求不成功
1.现在有的工程因为升级xcode7不能进行请求数据,新特性要求App内访问的网络必须使用HTTPS协议.但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全.现在也不能马上改成HTT ...
- JQuery常用方法(均实践过)
1,使用jquery修改html元素的值 a,修改form的action的值(即修改html的属性值) 这个可以扩展为修改html元素的属性值的方法,使用的$("#id").att ...
- linux可靠信号和非可靠信号测试样例
不可靠信号(在执行自定义函数其间会丢失同类信号) 可靠信号(在执行自定义函数其间不会丢失同类信号) 不可靠信号用一次以后,就恢复其默认处理吗? 至少在ubuntu 12.04上,已经是一次绑定,永远使 ...
- AlwaysOn Group Listener
1.Listener是什么 Listener实际上是一个 VirtualNetworkName,客户端通过这个VNN来连接的具体的sqlserver实例 .Listener包含了DNS名称,port和 ...
- noi题库(noi.openjudge.cn) 1.5编程基础之循环控制T36——T45
T36 计算多项式的值 描述 假定多项式的形式为xn+xn-1+-+x2+x+1,请计算给定单精度浮点数x和正整数n值的情况下这个多项式的值. 输入 输入仅一行,包括x和n,用单个空格隔开.x在flo ...
- jboss的时区问题
默认情况下,jboss启动时,使用的时区是“+0:00”区,而中国所在的时间为"+8:00"区(所谓的东8区),最终java取当前时间时,总比北京时间慢8个小时 解决办法: 新建一 ...