问题描述
服务端不定时(有时几分钟出现、有时3、5天才出现)出现无法激活服务的错误,同时伴随有一个未经处理的异常警告出现,事件代码3005,事件id1309,只要出现这个警告和异常后服务端任何接口无法访问。每个接口在正常情况下均访问正常,不会出现错误。出现错误后回收应用程序池即恢复正常。错误和警告的异常信息如下:异常信息:异常类型:ArgumentNullException异常消息:值不能为null。参数名:format在System.String.Format(IFormatProviderprovider,Stringformat,Object[]args)在System.ServiceModel.Web.WebServiceHost.OnOpening()在System.ServiceModel.Channels.CommunicationObject.Open(TimeSpantimeout)在System.ServiceModel.Channels.CommunicationObject.Open()在System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfoserviceActivationInfo,EventTraceActivityeventTraceActivity)在System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(StringnormalizedVirtualPath,EventTraceActivityeventTraceActivity)
解决方案
解决方案二:
没有人遇到过吗?自己先顶下。
解决方案三:
这种不定时异常,还是在服务端统一捕获异常日志吧
解决方案四:
引用1楼herj801的回复:
没有人遇到过吗?自己先顶下。
上面的异常就是服务端记录的异常,应该是打开请求报错,也就是.netframework提供的,怎么处理或者说判断到是自己的某个类方法出错了?先前给错误数据和方法的情况,那时候服务端也会记录具体的错误,且windows事件中不会记录事件,服务端仍然正常运行。只要出现了上面的错误和服务端直接死掉,所有服务不可用,提示无法激活服务,错误与上面的错误相同。同服务器上的网站和另外的服务不受影响。
解决方案五:
看起来没进你的代码啊。WebServiceHost.OnOpening时出现的问题,看看是不是config里有什么东西错了。
解决方案六:
有没有考虑过是不是你的代码“不定时(有时几分钟出现、有时3、5天才出现)”的出现null?或者是配置文件
解决方案七:
引用4楼findcaiyzh的回复:
看起来没进你的代码啊。WebServiceHost.OnOpening时出现的问题,看看是不是config里有什么东西错了。
是的,在onOpen是出现了错误,但一般情况下的访问完全是正常的,所有的服务接口均可以访问。
解决方案八:
引用5楼tongxuejie的回复:
有没有考虑过是不是你的代码“不定时(有时几分钟出现、有时3、5天才出现)”的出现null?或者是配置文件
对说数据的问题应该可以排除,因为测试过给错误数据的情况,服务会记录下错误,但不会出现无法激活服务的错误,windows事件中也不会存在“未处理异常”的警告。