开发者

WCF Service in ASP.NET application generating intermittent 404 errors

开发者 https://www.devze.com 2023-01-10 11:33 出处:网络
This problem has defeated my attempts at Google, so here goes.We were having an issue getting data from a WCF service (just lookup data, so we enabled it for HTTP GET requests).Every once in while it

This problem has defeated my attempts at Google, so here goes. We were having an issue getting data from a WCF service (just lookup data, so we enabled it for HTTP GET requests). Every once in while it will return a 404. The stack trace does NOT appear to have WCF in th开发者_JAVA百科e mix - the StaticFileHandler appears to be attempting to serve it.

I created a a sample WCF service on ASP.NET 3.5 SP1 and am able to reproduce the problem. This is my sample service - the only differences from stock WCF at this point are the AspNetCompatibilityRequirements and the enabling of WebScript and HTTP GET:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service1 : IService1
{        
    public string DoWork(string param1)
    {
        System.Threading.Thread.Sleep(150);
        return "bar";
    }
}

[ServiceContract]
public interface IService1
{
    [OperationContract]
    [WebGet]
    string DoWork(string param1);
}

Service config:

  <service name="namespace.Service1">
    <endpoint 
         behaviorConfiguration="WebScriptEnabled" 
         address="http://localhost:2961/svc/Service1.svc" 
         binding="webHttpBinding" 
         contract="namespace.IService1">
    </endpoint>
  </service>

Behavior config:

  <behaviors>
    <endpointBehaviors>
      <behavior name="WebScriptEnabled">
        <enableWebScript />
      </behavior>
    </endpointBehaviors>
  </behaviors>

My node has aspNetCompatibilityEnabled="true">, but otherwise everything is pretty much OOB. I have no customizations on webHttpBinding at all.

If I F5 on VS 2008 using the built in web server and hit the URL, the very first request will result in a 404. If I continue to hit it with even a light load (7-10 simultaneous requests), I'll get a handful of 404 errors.

If I then let the load drop down to nothing and rerun my test, I can go to 50 simultaneous requests easily WITHOUT any errors.

My real service is much more complicated than this, but the fact that I can get a (nearly) stock sample to show this behavior is concerning, as though there might be a framework related issue. I've enabled WCF diagnostics and tracing but nothing shows in the logs (not unexpected since WCF is not in the stack trace when the 404 occurs).

I hope I'm doing something wrong and have not discovered a framework bug. My production environment is IIS6 and appears to exhibit the same behavior as my development server.

0

精彩评论

暂无评论...
验证码 换一张
取 消