当我运行我的示例 WCF 应用程序时,我在 WCF 测试客户端窗口中收到以下错误
This operation is not supported in the wcf test client because it uses type system.io.stream
我有在我的服务实现中使用 Stream 的 ping 方法。
public string Ping(Stream input)
{
var streamReader = new StreamReader(input);
string streamString = streamReader.ReadToEnd();
streamReader.Close();
NameValueCollection nvc = HttpUtility.ParseQueryString(streamString);
return string.IsNullOrEmpty(nvc["message"])
? "The 'message' key value pair was not received."
: nvc["message"];
}
在我添加的 web.config 文件中
<basicHttpBinding>
<binding name="HttpStreaming" maxReceivedMessageSize="67108864" transferMode="Streamed" > </binding>
</basicHttpBinding>
允许流式传输。现在,当我运行应用程序时,出现上述错误。我用谷歌搜索并研究了很多。我使用 fiddler 来追踪错误,它是 http 错误 415,它确认上述错误来自 WCF 测试客户端。
更新: 这是我的服务合同
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(UriTemplate = "ping")]
string Ping(Stream input);
}
我使用的卷曲命令
curl -x 127.0.0.1:8888 http://localhost:8000/Service1.svc/ping -d message=pong
注意 -x 127.0.0.1:8888 用于 fiddler 捕获流量
这是提琴手的结果
# Result Protocol Host URL Body Caching Content-Type Process Comments Custom
1 415 HTTP localhost:8000 /Service1.svc/ping 0 private curl:7440