ошибка в нативной либе при попытке получить у Webrequest Webresponse

Тема в разделе ".NET", создана пользователем kolianich, 14 авг 2008.

Статус темы:
Закрыта.
  1. kolianich

    kolianich Гость

    У меня есть web application для 2.0, написанное в VS 2008. В аппликухе есть таймер по которому аппликуха забирает данные с одного серва обрабатывает их и посылает на другой серв, при этом используется POST request, и отправляются сгенеренные файлы. Файлы прекрасно принимаются сервом и обрабатываются, потом при попытке забрать респонс моя аппликуха валится с эксепшеном:

    Код (Text):
     System.Threading.ThreadAbortException: Thread was being aborted.
    at System.Net.UnsafeNclNativeMethods.OSSOCK.recv(IntPtr socketHandle, Byte* pinnedBuffer, Int32 len, SocketFlags socketFlags)
    at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode)
    at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
    at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
    at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
    at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
    at System.Net.ConnectStream.ProcessWriteCallDone(ConnectionReturnResult returnResult)
    at System.Net.HttpWebRequest.CheckDeferredCallDone(ConnectStream stream)
    at System.Net.HttpWebRequest.GetResponse()
    При этом самое интерестное, что если отсылка этого requsta происходит в самой веб аппликухе со страницы, то все работает прекрасно. Так же для сравнения создал вин формс аппликуху в которой тоже по таймеру отправлялись данные, и все работает прекрасно. А вот в веб аппликухе при работе таймера все валиться с эксепшеном описанном выше. Вот кусок кода где непосредственно летит эксепшен:

    Код (Text):
              String boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x");
    String postFileName = "mms_files";

    MemoryStream memStream = null;
    Stream reqStream = null;

    try
    {
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(m_Url);
    req.Method = "POST";
    req.ContentType = "multipart/form-data; boundary=" + boundary;
    req.KeepAlive = true;
    //req.ProtocolVersion = HttpVersion.Version10;
    req.Credentials = System.Net.CredentialCache.DefaultCredentials;

    memStream = new MemoryStream();

    Byte[] boundaryBytes = Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");
    memStream.Write(boundaryBytes, 0, boundaryBytes.Length);

    String headerTemplate = "Content-Disposition:form-data;name=\"{0}\";filename=\"{1}\"\r\nContent-Type: application/octet-stream\r\n\r\n";

    String header = String.Format(headerTemplate, postFileName, postFileName);
    Byte[] headerBytes = Encoding.UTF8.GetBytes(header);

    memStream.Write(headerBytes, 0, headerBytes.Length);

    Byte[] buff = new Byte[1024];
    Int32 bytesRead = 0;

    using (FileStream str = new FileStream(fileName, FileMode.Open, FileAccess.Read))
    {
    while ((bytesRead = str.Read(buff, 0, buff.Length)) != 0)
    {
    memStream.Write(buff, 0, bytesRead);
    }
    }

    memStream.Write(boundaryBytes, 0, boundaryBytes.Length);

    req.ContentLength = memStream.Length;
    reqStream = req.GetRequestStream();

    Byte[] buffer = new Byte[memStream.Length];

    memStream.Position = 0;
    memStream.Read(buffer, 0, buffer.Length);
    memStream.Close();

    reqStream.Write(buffer, 0, buffer.Length);
    reqStream.Close();

    HttpWebResponse response = (HttpWebResponse)req.GetResponse();

    try
    {
    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
    {
    String res = reader.ReadToEnd();
    reader.Close();
    ConvertResultToXml(res);
    }
    }
    finally
    {
    response.Close();
    }
    }
    finally
    {
    if(memStream != null)
    memStream.Close();
    if(reqStream != null)
    reqStream.Close();
    }
    Может кто-то сталкивался с такой проблеммой?
     
Загрузка...
Похожие Темы - ошибка нативной либе
  1. ildareshka
    Ответов:
    4
    Просмотров:
    42
  2. Ruska132
    Ответов:
    1
    Просмотров:
    71
  3. Lamerman
    Ответов:
    0
    Просмотров:
    49
  4. Enima
    Ответов:
    0
    Просмотров:
    65
  5. Baindt
    Ответов:
    1
    Просмотров:
    91
Статус темы:
Закрыта.

Поделиться этой страницей