AJAX调用ASMX Web服务间歇性失败

时间:2012-01-26 11:18:39

标签: c# ajax web-services

我正在研究从AJAX调用Web服务的问题,该问题间歇性地出现以下错误:

  

例外信息:
      异常类型:InvalidOperationException
      异常消息:对于意外以'/ GetType'结尾的URL,无法识别请求格式。

这类似于以下问题,但大部分时间都有效 - 只是间歇性地失败。

Request format is unrecognized for URL unexpectedly ending in

UI每两秒轮询一次,并且在某些状态发生变化之前工作正常,然后相同的调用失败大约1分30秒,然后它们继续工作。

Firebug中的POST-ed数据与呼叫成功和呼叫失败相同:

lastResult=''&lastState=33&random=0.7584943767104781

以下配置适用于Web服务

<location path="TypeService.asmx">
    <system.web>
        <webServices>
            <protocols>
                <add name="HttpPost"/>
            </protocols>
        </webServices>
        <authorization>
            <allow users="*"/>
            <allow users="?"/>
        </authorization>
    </system.web>
</location>

我认为配置是正确的,因为呼叫可以长时间工作。轮询机制在任何时候都不会改变。除了在另一个问题中提到的配置修复之外,是否还有其他原因导致此错误消息?

2 个答案:

答案 0 :(得分:0)

经过进一步调查后,我们发现由于服务构造函数中的实际代码错误而导致此错误 - 因此这是隐藏错误之一,其中错误消息并未真正指示问题。

答案 1 :(得分:-1)

确保在jquery中ajax调用应该是这样的,

$.ajax({
    type: "GET",
    url: "/ajax.asmx/YOUR_METHOD",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) { }
})