1

当我运行我的示例 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
4

0 回答 0