【问题标题】:Web service method issue. Request never reaches Web Service method (No error)Web 服务方法问题。请求永远不会到达 Web 服务方法(无错误)
【发布时间】:2012-11-16 17:19:14
【问题描述】:

好的,我已经在网络服务中编写了一个用于发送电子邮件的方法(不重要)。

站点方面,我将 MailMessage 对象反序列化为 XML(我编写的自定义例程)。然后将其作为参数传递给 Web 服务中的 Web 方法。一切正常,直到邮件中的文件附件变得大于 144kb 左右。

邮件消息的 XML 字符串最终看起来像这样(作为未格式化的字符串参数传递):

    <MailMessage>
      <To>xx.xx@Domain.com</To>
      <From>NoReply@Domain.com</From>
      <Body>blah blah</Body>
      <Attachment ContentType="application/vnd.ms-excel" fileName="Test.xls">
        <byte>00</byte>
        <byte>05</byte>
        <byte>6F</byte>
        …etc

我可以成功接收的最大附件大小为 144kb,高于此大小,并且请求永远不会到达 Web 服务方法。我知道这是一个事实,因为我的 web 方法的第一行是记录请求已收到。 IIS 日志显示 web 服务正在接收 POST 消息(据我所知),但没有证据表明它到达了我的 web 方法中。没有错误,尽管我能想到的所有东西都尝试 catch 块。

是否有某种我不知道的默认最大大小/超时?我不是这类东西的专家,所以我想我在这里遗漏了一些微不足道的东西。

谁能告诉我我可能做错了什么?如果需要,我可以发布代码示例。

【问题讨论】:

    标签: c# asp.net .net web-services soap


    【解决方案1】:

    在 web.config 中增加 maxMessageLength 的值应该允许将更大的soap消息传递到服务器。

    <configuration>
      <system.web>
      <httpRuntime maxMessageLength="409600"
        executionTimeoutInSeconds="300"/>
      </system.web>
    </configuration>
    

    查看此链接了解详情。

    Large Soap

    【讨论】:

    • 谢谢,使用链接中的信息,我安装了 WSE 并配置了我的服务以使用它。现在一切正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多