The answer, here, by Stephen C very well describes the issue. He says Broken pipe exception is caused by something causing the connection to close, and its not the application. I want to know what all this "something" could be in general, which is causing the connection to close? And what are the possible ways to handle them?
My usage environment: I am running my application on set of machines on Azure, and all of them are talking to one of the machine. I am getting this error almost always.
Could TCP timeout be one of the reasons? If yes then how to make Socket Channels(in affect Socket running behind them) never close dues to TCP timeout?