0

我已经研究这个问题几天了,大多数解决方案都提到在 app.config 文件和 web.config 文件中更改 MaxReceivedMessageSize 绑定设置。但是,我的解决方案没有 app.config 文件,所以我不太确定我在这里做错了什么。

我的 Web 客户端是从 IIS 7 部署的。我正在尝试将带有 xml 数据的 javascript 表单作为字符串异步提交到我的 WCF Web 服务,然后从那里触发客户端上的文件下载。这适用于较小的文件,但在较大的文件上失败,因为绑定似乎正在下降到默认值。

在我的 svclog 中使用 WCF 跟踪器时,我看到“已超出传入消息的最大消息大小配额 (65536)。要增加配额,请在适当的绑定元素上使用 MaxReceivedMessageSize 属性。” 来自我的服务。

这是我的 web.config,我知道它没有应用于我的请求。因此,我的请求甚至从未离开我的 javascript 客户端。

  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="customBindingNameForLargeMessages"
                  maxReceivedMessageSize="2147483647" transferMode="Streamed">
          <readerQuotas maxDepth="2147483647"
                        maxStringContentLength="2147483647"
                        maxArrayLength="2147483647"
                        maxBytesPerRead="2147483647"
                        maxNameTableCharCount="2147483647" />
        </binding>
      </webHttpBinding>
    </bindings>
    <client>
      <endpoint address="http//localhost:32478/Services/MobileConsoleDownloadService.svc"
        binding="webHttpBinding" bindingConfiguration="customBindingNameForLargeMessages"
        contract="Foo.Bar.MobileConsole.Services.IMobileConsoleDownloadService"
        name="" />
    </client>
    <services>
      <service name="Foo.Bar.MobileConsole.Services.MobileConsoleDownloadService">
        <endpoint address="http:localhost:32478/Services/MobileConsoleDownloadService.svc"
          binding="webHttpBinding" bindingConfiguration="customBindingNameForLargeMessages"
          name="" contract="Foo.Bar.MobileConsole.Services.IMobileConsoleDownloadService" />
      </service>
    </services>
  </system.serviceModel>
4

2 回答 2

0

我得到了这个工作。指定了错误的地址。现在我需要弄清楚如何使用相对地址。

编辑:我打算为这个问题创建一个新问题,但我会先看看我是否在这里得到任何点击。所以可以说我有

http://localhost:8080/services/whatever.svc

有什么办法我可以指定

/services/whatever.svc

? 当我将它部署在不同的服务器上时。

于 2013-05-17T20:40:35.583 回答
0

这个答案是你的“第二个”问题

<services>
  <service name="Foo.Bar.MobileConsole.Services.MobileConsoleDownloadService">
    <endpoint address="services.whatever.svc"
      binding="webHttpBinding" bindingConfiguration="customBindingNameForLargeMessages"
      name="" contract="Foo.Bar.MobileConsole.Services.IMobileConsoleDownloadService" />
      <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8080/"/>
      </baseAddresses>
    </host>
  </service>
</services>
于 2013-05-17T20:47:14.917 回答