C#WCF HTTP操作出现问题
本文关键字:问题 操作 HTTP C#WCF | 更新日期: 2023-09-27 18:20:02
我正在尝试让一个简单的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>