2

从今天早上开始,我一直收到以下错误:(

无法激活请求的服务“http://10.175.156.xx:yyyyy/SomeService.svc”。有关详细信息,请参阅服务器的诊断跟踪日志。

在 Azure 上打开 svc 日志时,我看到以下警告和错误:

W:无法打开 Ninjet.Extensions.Wcf.NinjectIISHostingServiceHost`1[MyNameSpace.Servicelayer.SomesSrvice W:故障 Ninject.Extensions.WCf.NinjectIISHostingServiceHost[MyNamespace.ServiceLayer.SomeService] W:ServiceHost 故障

有时,我会看到以下错误,然后是上面的警告:

E:加载服务的性能计数器失败。此服务将无法使用性能计数器。实例 'SomeService@||SomeService.svc' 已存在于 CounterSet 'e829b6db-21ab-453b-83c9-d980ec708edd' 中。参数名称:InstanceName

上周运行良好,我在 Azure 上没有看到任何变化。

顺便说一句,它在本地运行良好。

编辑:由于我还不能回答我自己的问题,我正在编辑帖子以包含“解决方案”:(

`好的!看起来问题缺少一些参考:(

我在 WCF 项目中添加了一个类库项目,并且该类库引用了 MVC 4。

4

1 回答 1

0

两个提到该应用程序运行良好并且问题开始发生。正如您提到的缺少引用,正在运行的应用程序由于缺少引用而停止工作并不奇怪。当问题开始出现时是否有任何触发器,即 VM 回收、部署更新等,或者您是否将以前的 MVC 更新到 MVC4?

关于您的“加载服务的性能计数器失败”问题,它可能是由您的 ServiceHost 的紧密关闭/打开顺序中的时间问题引起的。ServiceHost 确实维护了特定的性能计数器,这些计数器无法被垃圾收集并导致此异常。您可以使用下面的代码来解决此问题:

GC.Collect() 
GC.WaitForPendingFinalizers()

根据我的经验,由于缺少特定配置,可能会发生“请求的服务,*无法激活”问题,由于应用程序中的连接时间较长或运行时问题而发生超时。通过添加适当的引用可以肯定您的问题可以解决,但是您可能还需要查看服务配置以进一步避免此类问题。

于 2012-10-02T00:00:14.927 回答