2011-09-08 5 views
0

나는 웹 서비스 메서드 인 uploadFile.the 메서드를 사용하여 매개 변수를 base64str로 가져 와서 지정된 주소에 파일로 기록해야합니다. 하지만 문제가 있습니다.이 방법으로는 350KB 이상의 파일을 업로드 할 수 없습니다. 그렇지 않으면 zip, jpg, txt와 같은 300KB 미만의 파일을 업로드 할 수 있습니다. 또한 350KB 이상의 파일을 업로드하려고하면 서버에서 계속 작동하는 프로세스입니다.파일 게시 문제 - ASP.Net

프로세스 :

Image Name : w3wp.exe, UserName : ASP.Net v4.0, CPU : 50, Description : IIS Worker Process 

때때로 서버 CPU가 간다 ~ 100 %

코드 :

* encodedFile = Base64Str as format 

    string postString = string.Format("userName={0}&userVendor={1}&vendorKey={2}&base64FileStr={3}&guid={4}&fileName={5}",         "kadi", "şifre", "key", encodedFile, guid, strFilename); 


       string localHttpPostUrl = userGatewayAddress + "uploadFile"; 

       ASCIIEncoding encoding = new ASCIIEncoding(); 

       Stream newStream = null; 

       HttpWebResponse response = null; 

       Stream streamResponse = null; 

       StreamReader streamRead = null; 


       try 

       { 

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(localHttpPostUrl); 

        request.ContentType = "application/x-www-form-urlencoded"; 

        request.Method = "POST"; 



        byte[] buffer = Encoding.UTF8.GetBytes(postString); 

        request.ContentLength = buffer.Length; 


        newStream = request.GetRequestStream(); 

        newStream.Write(buffer, 0, buffer.Length); 

        newStream.Close(); 


        response = (HttpWebResponse)request.GetResponse(); 

        streamResponse = response.GetResponseStream(); 

        streamRead = new StreamReader(streamResponse); 


        Char[] readBuffer = new Char[256]; 

        ret = string.Empty; 

        int totalCharCount = 0; 

        int count = streamRead.Read(readBuffer, 0, 256); 

        while (count > 0) 

        { 

         totalCharCount += count; 

         ret += new String(readBuffer); 

         count = streamRead.Read(readBuffer, 0, 256); 

        } 

        ret = ret.Substring(0, totalCharCount); 


        return ret; 

       } 

       catch (Exception x) 

       { 

        return x.Message; 

       } 

답변