3

我正在构建一个 WCF 服务,以使用命名管道在两个进程之间传输大文件(~8 Gig)。

我已经有了以流模式传输小文件的概念。虽然对于较大的文件,我必须增加 maxReceivedMessageSize。我可以毫无问题地在主机 app.config 中指定 bindingConfiguration。

当我在客户端 app.config 的客户端端点中指定 bindingConfiguration 时,会出现问题。

bindingConfiguration="MyNamedPipeBinding"

我得到的错误信息:

'net.pipe://localhost/MyService' 不支持正在使用的 .Net 框架模式。有关更多详细信息,请参阅服务器日志。

不支持成帧模式 Singleton。

主机配置:

<services>
  <service name="MyService">
    <endpoint
      address="net.pipe://localhost/MyService"
      binding="netNamedPipeBinding"
      bindingConfiguration="MyNamedPipeBinding"
      contract="MyApp.MyService"
      name="MyServiceEndpoint"/>
  </service>
</services>
<bindings>
  <netNamedPipeBinding>
    <binding name="MyNamedPipeBinding" 
             transferMode="StreamedResponse" 
             maxBufferSize="32768" 
             maxReceivedMessageSize="21474836480">
      <security mode="None" />
    </binding>
  </netNamedPipeBinding>
</bindings>

客户端配置:

<client>
  <endpoint
    address="net.pipe://localhost/MyService"
    binding="netNamedPipeBinding"
    bindingConfiguration="MyNamedPipeBinding"
    contract="MyApp.MyService"
    name="MyServiceEndpoint">
  </endpoint>
</client>
<bindings>
  <netNamedPipeBinding>
    <binding name="MyNamedPipeBinding" 
             transferMode="StreamedResponse" 
             maxBufferSize="32768" 
             maxReceivedMessageSize="21474836480">
      <security mode="None"  />
    </binding>
  </netNamedPipeBinding>
</bindings>
4

0 回答 0