Wcf服务客户端不接收流消息

时间:2015-12-30 01:08:35

标签: c# asp.net-mvc wcf autofac

我遇到了奇怪的问题。我的mvc应用程序不想从wcf服务接收流。通过发送流一切都好!我的Client.dll.config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="basicHttpStream" sendTimeout="00:05:00" messageEncoding="Mtom" />
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:61174/FileTransferService.svc"
                binding="basicHttpBinding" bindingConfiguration="basicHttpStream"
                contract="IFileTransferService" name="basicHttpStream" />
        </client>
    </system.serviceModel>
</configuration>

客户收到此消息:&#34; multipart / related;类型=&#34;应用程序/ XOP + XML&#34 ;;开始=&#34; http://tempuri.org/0&#34 ;;边界=&#34; UUID:6fc3add5-b28f-4842-a944-0bb6c79d05c6 + ID = 6&#34 ;;启动信息=&#34;文本/ XML&#34;&#34;

我使用Autofac创建频道:

builder
    .Register(c => new ChannelFactory<IFileTransferService>(
        new BasicHttpBinding(),
        new EndpointAddress("http://localhost:61174/FileTransferService.svc"))).InstancePerLifetimeScope();
builder.Register(c => c.Resolve<ChannelFactory<IFileTransferService>>().CreateChannel())
    .As<IFileTransferService>()
    .UseWcfSafeRelease();

1 个答案:

答案 0 :(得分:0)

我已经找到了决定! 问题出在autofac配置中。我需要设置绑定配置的名称。 正确的解决方案:

builder.Register(c => new ChannelFactory<IFileTransferService>(
     new BasicHttpBinding("basicHttpStream"),
     new EndpointAddress("http://localhost:61174/FileTransferService.svc"))).InstancePerLifetimeScope();
builder.Register(c => c.Resolve<ChannelFactory<IFileTransferService>>().CreateChannel())
    .As<IFileTransferService>()
    .UseWcfSafeRelease();