'webService request failed with HTTP status 404

I have problem with sending a big file via webService (System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse).

Everything works fine when the file is smaller then 20 MB, if it's bigger i get a response with 404 code.

Exception Information

Exception Type: System.Net.WebException
Status: ProtocolError
Response: System.Net.HttpWebResponse
Message: The request failed with HTTP status 404: Not Found.
Data: System.Collections.ListDictionaryInternal
TargetSite: System.Object[] ReadResponse(System.Web.Services.Protocols.SoapClientMessage, System.Net.WebResponse, System.IO.Stream, Boolean)
HelpLink: NULL
Source: System.Web.Services

StackTrace Information

   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at ie.osds.DocumentsTransferBLL.FSDMZRepositoryService.FileStreamingWebService.UploadScanning(DateTime DateCreated, String Title, String FileName, String ReferenceNumber, String Author, String DocumentType, XmlNode IndexData, Byte[] Content, Nullable`1 IsCompressed, Nullable`1 Version, DateTime DateReceived, String CreatedBy, String OrigDocumentGUID)
   at ie.osds.DocumentsTransferBLL.Actions.ActionsHelper.UploadDocumentToDMZFileStreaming(FileStreamingWebService fsDMZWebService, SPQDocument spqDocument, String documentReferenceNumber, String documentAuthor, String documentType, Byte[] documentContent, String version, DateTime dateReceived)
   at ie.osds.DocumentsTransferBLL.Actions.DocumentsUploadAction.Upload()*


Solution 1:[1]

Sounds like your file upload is timing out:

You can trap this error in your global.asax to see if this is the case:

Protected Sub Application_EndRequest(ByVal sender As Object, ByVal e As System.EventArgs)

    Dim context As HttpContext = HttpContext.Current.ApplicationInstance.Context
    If Not IsNothing(context) Then

        If Not context.Response.StatusCode = HttpStatusCode.OK Then

            'Detect file upload exceeded max length:
            If context.Response.StatusCode = 404 And
                context.Response.SubStatusCode = 13 Then
                'clear the previous error page content:
                context.Response.Clear()
                'redirect to custom error page:
                context.Server.Transfer("~/error.aspx?code=404.13", False)
            End If

        End If

    End If
End Sub

You can also increase the request length in your web.config like so:

<system.web>
    <httpRuntime maxRequestLength="29296" />
</system.web>

Note: Value is in Kbytes

Solution 2:[2]

If there is a webservice reference in web application just delete that then Rebuild,run the webservice and then again add that webservice reference to the web application.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 George Filippakos
Solution 2 Ashwini Landge