我有一个WCF服务,它不响应方法调用。在客户端,当我调用任何方法时都会超时。
有趣的是,当我在VisualStudio上更新引用时,它工作得很好。它按预期响应元数据请求。
查看(服务器上的)Windows事件日志,我看到消息App Pool exceeded time limits during shut down
。
查看IIS日志,我看到消息Connection_Abandoned_By_AppPool FooBar
,其中FooBar
是应用程序池的名称。
有人能告诉我为什么我的WCF服务没有响应客户端请求吗?
这是服务器上的web.config:
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="FooBarBehaviors">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="FooBarBinding">
<readerQuotas maxArrayLength="1048576" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="FooBarSvc.FooBar" behaviorConfiguration="FooBarBehaviors">
<endpoint contract="FooBarSvc.FooBar" binding="basicHttpBinding" bindingConfiguration="FooBarBinding" address="" />
</service>
</services>
</system.serviceModel>
</configuration>
我发现这是我正在使用的组件的问题。web服务很好,但组件挂起,使得方法调用需要很长时间才能返回,因此被放弃并导致客户端超时。