我在我的一个服务上得到了ServiceActivationException,有时它工作得很好

时间:2010-07-30 19:56:10

标签: wcf

我有一个使用Entity Framework从SQL服务器检索数据的服务。大部分时间它工作正常,但有时它失败了

  

请求的服务   XXXXXXXXXXXXXXXXXXX可以   激活。“错误。能够看到   什么不对,我启用了跟踪   并使用svctraceviewer进行检查。和   发现有一个   显示的nullreference异常   ......下面是错误的详细信息   我看到......

     

异常类型:   System.ServiceModel.ServiceActivationException,   System.ServiceModel,Version = 3.0.0.0,   文化=中性,   公钥= b77a5c561934e089

     

消息:该服务   '/bookadventurewcf/CommonService.svc'   由于a无法激活   编译期间的异常。该   异常消息是:对象引用   没有设置为对象的实例..

     

堆栈跟踪:   System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(字符串   normalizedVirtualPath)   System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(字符串   relativeVirtualPath)   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest()   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(对象   州)   System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke2()

等等

因此,如果没有将Object Refenence设置为对象实例,则在EnsureServiceAvailable失败。
我无法弄清楚导致错误的原因。

1 个答案:

答案 0 :(得分:2)

由于下面提到的原因我遇到了这个错误

内存门检查失败,因为可用内存(258187264字节)小于总内存的5%。因此,该服务将无法用于传入请求。要解决此问题,请减少计算机上的负载或调整serviceHostingEnvironment配置元素上的minFreeMemoryPercentageToActivateService的值。

因此,当有超过5%的RAM可用时,检查服务器的ram消耗,你的服务可以正常工作,何时不能引发此错误