Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Call to web service webmethod throws HTTP/1.1 404 Not Found

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?

like image 402
T.S. Avatar asked Aug 13 '15 04:08

T.S.


1 Answers

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.

Edit request propertues

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.

like image 62
T.S. Avatar answered Sep 30 '22 02:09

T.S.