我使用Best way to support "application/x-www-form-urlencoded" post data with WCF?
中建议的方法将数据发布到WCF我正在关注http://blogs.southworks.net/erossetto/2007/09/03/raw-http-post-with-wcf/中的示例,事情看似很好。但是,一个问题是在请求中管理流。我创建了一个像
这样的辅助方法 public static NameValueCollection ParsePOSTRequest(Stream input)
{
StreamReader sr = new StreamReader(input);
string s = sr.ReadToEnd();
sr.Dispose();
return HttpUtility.ParseQueryString(s);
}
我在所有方法中调用它,因此我可以更容易地查找参数。现在,当我尝试通过WebOperationContext.Current
访问有关请求的信息时,我发现了一个问题。任何属性或方法都会抛出像The System.ServiceModel.Channels.MessageProperties object has been disposed.
这样的异常,这显然来自于在执行业务逻辑之前流处理器正在处理的事实。
问题是“处理它是否正确?”我应该只是关闭它吗?或者根本不打算关闭?在我的方法完成后,框架是否仍然需要该流程?或者我的所有人都可以使用它?