ProcessRequest from RequestInterceptor never ends [WCF]
So, I'm using the Developer's Guide to the WCF REST Starter Kit and having a problem with the RequestInterceptor. I have the exact code the guide is showing but for some reason the method never ends.
This is my code:
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;
}
My 开发者_运维知识库call gets stuck at context.Reply(reply); I have no idea what I'm doing wrong... any heads up?
thanks
Ok, my bad... it was a simple/stupid issue.
First of all there was an Exception taking place that I was not seeing... once I added a try catch and tracing I discovered I was getting the following error: "System.InvalidOperationException: This collection holds request headers and cannot contain the specified response header".
After looking a little closer I noticed I was adding a HttpRequestHeader instead of the HttpResponseHeader... my bad :(
responseProp.Headers[HttpResponseHeader.ContentType] = "text/html";
精彩评论