I have a piece of code in which there are 2 sequential calls to a good old ASMX web service.
service.Url = "http://.....";
service.A(1, 2, 3);
service.B(4, 5, 6);
Call to A
is fine. But call to B
throws 404... not found...
In discovery, both methods are visible and seem fine - I see both in IE, metadata looks good. I placed break point in B
and it is definitely not hitting. I did rebuild, Update Web Service
reference in consuming project and rebuilt it.
The status is WebExceptionStatus.ProtocolError
.
Signature of failing web Method
<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
The call is (verified)
bool result = service.B(string, string, byteArray1, int, byteArray2);
Again, WebMethod B is not reached. Web reference proxy and all - look good. What can it be?
I resolved it. It was confusing since I was getting HTTP/1.1 404 Not Found
and WebExceptionStatus.ProtocolError
.
Once I hooked-up Fiddler2, I was digging in it and found WebView, in which it clearly says:
•Request filtering is configured on the Web server to deny the request because the content length exceeds the configured value.
To resolve the issue I've changed configuration in IIS to allow 50MB requests.
And you also want to have following setting in web.config
<httpRuntime maxRequestLength="1000000" executionTimeout="3000"/>
Max setting is 2097151 KB
404
was confusing. It sounded like issue with web service while in reality it was the size of request. And when I said it worked before, it is simply because before I wouldn't save such large objects as I have to this time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With