'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 |
