ProcessRequest от RequestInterceptor никогда не заканчивается [WCF]
Итак, я использую Руководство разработчика по начальному набору WCF REST и имею проблему с RequestInterceptor. У меня есть точный код, который показывает руководство, но по какой-то причине метод никогда не заканчивается.
Это мой код:
public override void ProcessRequest(ref RequestContext requestContext)
{
GenerateErrorResponse(requestContext, HttpStatusCode.Forbidden, "shit happens!");
}
public void GenerateErrorResponse(RequestContext context, HttpStatusCode statusCode, string errorMessage)
{
XElement response = XElement.Load(new StringReader(string.Format(ERROR_HTML, errorMessage)));
Message reply = Message.CreateMessage(MessageVersion.None, "action", response);
HttpResponseMessageProperty responseProp = new HttpResponseMessageProperty()
{
StatusCode = statusCode,
//StatusDescription = errorMessage
};
responseProp.Headers[HttpRequestHeader.ContentType] = "text/html";
reply.Properties[HttpResponseMessageProperty.Name] = responseProp;
context.Reply(reply);
context = null;
}
Мой вызов застревает в context.Reply(ответ); Я понятия не имею, что я делаю не так... какие-нибудь головы?
Спасибо
1 ответ
Хорошо, мой плохой... это была простая / глупая проблема.
Прежде всего, произошло исключение, которого я не видел... как только я добавил попытку и трассировку, я обнаружил, что получаю следующую ошибку: "System.InvalidOperationException: эта коллекция содержит заголовки запроса и не может содержать указанный ответ заголовок".
Посмотрев немного поближе, я заметил, что я добавляю HttpRequestHeader вместо HttpResponseHeader... мой плохой:(
responseProp.Headers[HttpResponseHeader.ContentType] = "text/html";