我有一段代码,其中有两个顺序调用旧的ASMX Web服务。
service.Url = "http://.....";
service.A(1, 2, 3);
service.B(4, 5, 6);
致电A
没问题。但是调用B
抛出404... not found...
在发现中,两种方法都是可见的并且看起来很好 - 我在IE中看到,元数据看起来都很好。我在B
中设置了断点并且绝对没有击中。我在使用项目时重建了Update Web Service
引用并重建了它。
状态为WebExceptionStatus.ProtocolError
。
失败的网络方法签名
<WebMethod(Description:="Store a fragment of object on server.")> _
Public Function B(
ByVal p1 As String,
ByVal p2 As String,
ByVal p3() As Byte,
ByVal p4 As Integer,
ByVal p5() As Byte) As Boolean
电话是(已验证)
bool result = service.B(string, string, byteArray1, int, byteArray2);
同样,未达到WebMethod B. Web引用代理和所有 - 看起来不错。 它能是什么?
答案 0 :(得分:5)
我解决了。因为我得到了HTTP/1.1 404 Not Found
和WebExceptionStatus.ProtocolError
,所以很困惑。
在我连接 Fiddler2 之后,我正在挖掘它并找到 WebView ,其中明确指出:
•在Web服务器上配置了请求筛选以拒绝请求,因为内容长度超过了配置的值。
要解决此问题,我已在IIS中更改配置以允许50MB请求。
您还希望在web.config
中进行以下设置<httpRuntime maxRequestLength="1000000" executionTimeout="3000"/>
最大设置为2097151 KB
404
令人困惑。这听起来像Web服务的问题,而实际上它是请求的大小。当我之前说过它之前,它只是因为在此之前我不会保存这么大的物体。