我正在尝试让一个简单的 WCF 服务工作,该服务将处理来自 REST HTTP POST 的传入数据流,我之前创建了 WCF Soap Webservices 没有问题,但是遇到了这个 POST 操作的问题。我正在尝试创建一个将接受传入 POST 的 WCF Web 服务。
我在 Visual Studio 中生成了一个新的 WCF 项目,当我使用 WCF 测试客户端测试创建的默认项目时,它可以正常工作。但是,当我执行以下操作以尝试制作一个接受 POST 的 WCF 时,我让它正确构建,我让它正确启动而没有错误,它说服务已添加,并且它也正确生成了一个 WSDL,但是当我尝试向其发布时,什么也没有发生。在 WCF 测试客户端中,发布操作有一个红色 x,并显示“Wcf 测试客户端不支持此操作,因为它使用 System.IO.Stream 类型”
该项目名为 WcfService1。
文件 IService1.cs 具有服务合同:
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(UriTemplate="post")]
string post(Stream input);
}
文件 Service1.svc.cs 具有方法定义:
public string post(Stream input)
{
StreamReader sr = new StreamReader(input);
String postdata = sr.ReadToEnd();
sr.Dispose();
// simple debug statement
return "test";
}
我使用以下 html 来发帖:
<form method="post" action="http://localhost:49163/Service1.svc/post">
Test Data: <input type="text" name="TestField" />
<input type="submit" name="submit" value="Submit" />
</form>
我在http://blogs.southworks.net/erossetto/2007/09/03/raw-http-post-with-wcf/找到了一个示例,但我仍然遇到问题。我认为让它工作起来非常简单。