问题
I have a WCF service hosted in IIS using WAS. When I try to access this service using a net.tcp binding I get the following error:
There was an error reading from the pipe: Unrecognized error 109 (0x6d).
When using basicHttp I do not encounter the problem.
The strange thing is that I can "fix" the problem by randomly changing the web.config and saving it. The problem just vanishes until I do an IISReset or an Application Pool Recycle. It is then broken again until I change (or just save) the web.config again...
- I have enabled tracing but that just gives the unrecognize error.
- Rebooting doesn't help.
- I have increased the thresholds in WCF but that didn't change anything.
The contract is really really simple with no complex types, so no serialization problems. The return message size is a string of only 12 characters
回答1:
Have a look at this...
http://blogs.msdn.com/b/joncole/archive/2010/06/29/smsvchost-exe-event-log-id-8-an-error-occurred-while-dispatching-a-duplicated-socket-this-handle-is-now-leaked-in-the-process.aspx
In my case restarting net tcp listener and port sharing service helped. The article has a nice overview of most likely causes too.
回答2:
I have got the same error and found a solution to my case, try it out and check if it resolve yours.
In my case, there was a unrecognized data being passed through WCF. It was a enumerator that was not registered.
E.g (c#):
enum MyEnum
{
A = 1,
B = 2
}
And then I use a MyEnum object with value 3 (any that dont exist in enum). So, WCF cant understand this value and gave me this error.
回答3:
If you are using big messages you could try changing the transfer mode from buffered to streamed: http://msdn.microsoft.com/en-us/library/ms731913.aspx
It has solved our problems.
Regards
回答4:
I received this error because I was returning a DataTable from my service call and I did not set the TableName property.
来源:https://stackoverflow.com/questions/4872352/getting-unrecognized-error-109-0x6d-which-can-be-fixed-by-changing-web-con