我可以将此 wsHttpBinding 转换为支持流的自定义 WCF 绑定吗?
Can I convert this wsHttpBinding to a custom WCF binding that supports streaming?
我对 WCF 不是很熟悉,但我最近继承了一个旧的 API,它使用了以下 wsHttpBinding
的两个版本,我的任务是添加一个新的 API 使用流式调用它。
<wsHttpBinding>
<binding name="wsHttpBinding" maxReceivedMessageSize="2147483647" maxBufferPoolSize="0" receiveTimeout="05:00:00" sendTimeout="05:00:00">
<readerQuotas maxArrayLength="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" maxDepth="64" maxBytesPerRead="66560" />
<security mode="None/Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
</security>
</binding>
</wsHttpBinding>
注:QA版本使用安全模式None
,prod版本使用安全模式Transport
,其他相同
虽然这种类型的绑定不支持流式传输,但目前似乎没有使用可靠的会话(假设缺少 <reliableSession>
元素意味着它被禁用),所以我想知道它是否或许可以将其转换为一个 customBinding
,它的工作原理相同,但会为将要使用它的一个调用启用流式处理。
很久以前我就看到类似的问题已经用 BindingBox 回答了,一个看似非常有用的工具现在已经不可用了。不幸的是,我还没有找到镜像或源代码,所以没有这个工具,我如何确定这个自定义绑定是否可行,如果可以,请着手创建它?
经过大量搜索,我根据this very old blog post and the customBinding documentation拼凑了以下内容。这相当于 None
安全模式;对于 Transport
安全模式,只需将 httpTransport
元素名称替换为 httpsTransport
。
<customBinding>
<binding name="wsHttpStreamBinding" receiveTimeout="05:00:00" sendTimeout="05:00:00">
<textMessageEncoding>
<readerQuotas maxArrayLength="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" maxDepth="64" maxBytesPerRead="66560" />
</textMessageEncoding>
<httpTransport transferMode="Streamed" maxReceivedMessageSize="2147483647" maxBufferSize="104857600" />
</binding>
</customBinding>
我对 WCF 不是很熟悉,但我最近继承了一个旧的 API,它使用了以下 wsHttpBinding
的两个版本,我的任务是添加一个新的 API 使用流式调用它。
<wsHttpBinding>
<binding name="wsHttpBinding" maxReceivedMessageSize="2147483647" maxBufferPoolSize="0" receiveTimeout="05:00:00" sendTimeout="05:00:00">
<readerQuotas maxArrayLength="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" maxDepth="64" maxBytesPerRead="66560" />
<security mode="None/Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
</security>
</binding>
</wsHttpBinding>
注:QA版本使用安全模式None
,prod版本使用安全模式Transport
,其他相同
虽然这种类型的绑定不支持流式传输,但目前似乎没有使用可靠的会话(假设缺少 <reliableSession>
元素意味着它被禁用),所以我想知道它是否或许可以将其转换为一个 customBinding
,它的工作原理相同,但会为将要使用它的一个调用启用流式处理。
很久以前我就看到类似的问题已经用 BindingBox 回答了,一个看似非常有用的工具现在已经不可用了。不幸的是,我还没有找到镜像或源代码,所以没有这个工具,我如何确定这个自定义绑定是否可行,如果可以,请着手创建它?
经过大量搜索,我根据this very old blog post and the customBinding documentation拼凑了以下内容。这相当于 None
安全模式;对于 Transport
安全模式,只需将 httpTransport
元素名称替换为 httpsTransport
。
<customBinding>
<binding name="wsHttpStreamBinding" receiveTimeout="05:00:00" sendTimeout="05:00:00">
<textMessageEncoding>
<readerQuotas maxArrayLength="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" maxDepth="64" maxBytesPerRead="66560" />
</textMessageEncoding>
<httpTransport transferMode="Streamed" maxReceivedMessageSize="2147483647" maxBufferSize="104857600" />
</binding>
</customBinding>