C#WCF HTTP操作出现问题



我正在尝试让一个简单的WCF服务工作,该服务将处理来自REST HTTP POST的传入数据流,我以前创建过WCF Soap Web服务,但此POST操作遇到了问题。我正在尝试创建一个WCF web服务,它将接受传入的POST。

我在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/但我还是有问题。我认为这是一件非常简单的事情,让它发挥作用。

将绑定方法更新为webHttpBinding,如以下示例中所示

<services>
  <service name="SampleService" behaviorConfiguration="WebBehavior">
    <endpoint address=""
              behaviorConfiguration="WebBehavior"
              binding="webHttpBinding"
              bindingConfiguration=""
              contract="ISampleService" />
  </service>

最新更新