У меня проблема с моей службой WCF.Кажется, я не могу вернуться с ошибкой (например, сгенерировав исключение WebFaultException) после открытия потока запросов.
[OperationContract]
[WebInvoke(UriTemplate = "/callA?a={a}&b={b}&c={c}")]
Stream CallA(string a, string b, string c, Stream data);
Внутри операции I:
throw new WebFaultException<string>("test test", HttpStatusCode.InternalServerError);
Если я сделаю это раньшеоткрывая StreamReader (данные) на сервере, он отправляет исключение клиенту, если я делаю это после того, как это не так.Что я делаю неправильно?Я хочу иметь возможность отправлять информацию о неверных данных после выполнения запроса.
Сторона клиента:
var req = WebRequest.Create(url);
req.ContentType = "text/xml;charset=\"utf-8\"";
req.Method = "POST";
req.Credentials = credentials;
Stream strWrite = req.GetRequestStream();
var sw = new StreamWriter(strWrite);
sw.Write(messageBody.ToString());
sw.Close();
WebResponse wr = req.GetResponse();
HttpWebResponse httpRes = (HttpWebResponse)wr;
Stream responseStream = httpRes.GetResponseStream();
return responseStream;