我正在构建一个 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>