को पकड़ने के बाद सत्र जारी नहीं करता है मैंने आईआईएस और डब्ल्यूसीएफ क्लाइंट में होस्ट की गई एक साधारण डब्ल्यूसीएफ सेवा बनाई है और यह पता लगाया है कि जब आप wcf सेवा से FaultException पकड़ते हैं और फिर क्लाइंट को कॉल करते हैं। सत्र() माइक्रोसॉफ्ट के नमूनों के रूप में जारी करने के लिए निरस्त()) यह सत्र जारी नहीं करता है और 11 वीं कॉल पर लटकता है।डब्लूसीएफ क्लाइंट प्रॉक्सी का एबॉर्ट() विधि FaultException
WCF सेवा::
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
}
public class Service1 : IService1
{
public string GetData(int value)
{
throw new FaultException("Exception is here");
return string.Format("You entered: {0}", value);
}
}
ग्राहक:
यहाँ उदाहरण है
class Program
{
static void Main(string[] args)
{
Service1Client client = null;
for(int i = 0; i < 15; i++)
{
try
{
client = new Service1Client();
client.GetData(100);
}
catch (TimeoutException timeoutEx)
{
Console.WriteLine(timeoutEx);
client.Abort();
}
catch (FaultException faultEx)
{
Console.WriteLine(faultEx);
client.Abort();
}
catch (CommunicationException commEx)
{
Console.WriteLine(commEx);
client.Abort();
}
}
}
}
लेकिन आप client.Close साथ client.Abort() की जगह अगर() पकड़ने के लिए (FaultException) तो सब कुछ एक आकर्षण की तरह काम करता है और wcf के 11 वें कॉल के बाद कोई लॉकिंग नहीं है सेवा विधि।
यह क्यों हो सकता है? FaultException पकड़ने के बाद Abort() विधि सत्र को साफ क्यों नहीं करती है?
तुम सिर्फ प्रतिलिपि इसे यहाँ से चिपकाया था? http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/f86c056a-4027-453a-a46c-fc223e03589b/ – oleksii