Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WCF Service: Status 200 with sc-win32-status of 64

Tags:

iis

wcf

We observed the following behavior on one of the servers hosting a WCF service on IIS 6.0:

  1. The IIS log shows a high value for time-taken (> 100000)
  2. The HTTP status code is 200
  3. sc-win32-status code shows a value of 64

I found out that sc-win32-status code of 64 indicates "The specified network is no longer available"

Initially I suspected that it could be because of limits set on MinFileBytesPerSecond, which sets the minimum throughput rate that HTTP.sys enforces when sending data from the client to the server, and back from the server to the client. But the value for sc-bytes and cs-bytes indicate that the amount of data is sent is within the range generally observed for the service.

Also note that the WCF service is hosted on four boxes and is load-balanced, but the problem occurs only one of the servers. (but not essentially on the same server). The problem is also intermittent.

Has anybody else encountered this error? Any clues about what could be wrong?

Update

Note: Observation on IIS 7.5 (IIS version does not really matter)

I was able to replicate the issue. The issue occurs if:

1. The WCF service takes a long time to respond
2. The client proxy times out before it receives a response from the server. In this case it leads to TimeoutException on the client.
3. The server keeps waiting for TCP ACK for the client, which it would never receive.

Hence a long timeout (TCP socket timeout (default value: 4 minutes) and sc-win32-status of 64

So essentially it appears that WCF code is taking a long time to respond and the client is timing out, what I observe in IIS log is just a symptom and not a problem.

like image 250
coder_bro Avatar asked Sep 05 '12 09:09

coder_bro


People also ask

What does sc win32 status mean?

sc-win32-status 64 means “The specified network name is no longer available.” After IIS has sent the final response to the client, typically it waits for an ACK message from the client.

What is SC status 200?

These HTTP status codes indicate that the server successfully accepted the request. IIS 7.0 and later versions use the following success HTTP status codes: 200 - OK. The client request has succeeded.

Why SC-status = 200 and sc-win32- status = 64?

As a result. If you see sc-status = 200, sc-win32-status = 64 and a large time-taken value in the first access after site published, it is normally to take long time. You can try to change other network, sometimes network causes many problems but we can do nothing.

What is the meaning of iis-win32-status 64?

sc-win32-status 64 means “The specified network name is no longer available.” After IIS has sent the final response to the client, typically it waits for an ACK message from the client. Sometimes clients will reset the connection instead of sending the final ACK back to server.

What does the error sc-win32-status=995 mean?

The error description of sc-win32-status=995 is: "The I/O operation has been aborted because of either a thread exit or an application request." This doesn't make any sense (considering I have full access to the code).


1 Answers

The behavior you are describing will also occur if you exceed a WCF service's max sessions, calls or instances (depending on how you have your service instancecontext mode configured). If you observe the System.ServiceModel performance counters for %max concurrent sessions and/or %max concurrent calls (again depending on your service's instance context), you may see a correlation with the IIS log entries.

Note that these maxes can be configured in the service throttling behavior.

https://msdn.microsoft.com/en-us/library/vstudio/system.servicemodel.description.servicethrottlingbehavior(v=vs.100).aspx

like image 128
user2842949 Avatar answered Oct 30 '22 13:10

user2842949