1. 程式人生 > >webservice傳輸資料量較大的情況的解決方案

webservice傳輸資料量較大的情況的解決方案

class CompressSoapExtension : SoapExtension
    {
        
///<summary>/// 舊流
        
///</summary>private Stream _originStream =null;

        
///<summary>/// 新流
        
///</summary>private Stream _newStream =null;

        
publicoverride Stream ChainStream(Stream stream)
        {
            
this
._originStream = stream;
            
this._newStream =new MemoryStream();

            
returnthis._newStream;
        }

        
publicoverrideobject GetInitializer(Type serviceType)
        {
            
returnnull;
        }

        
publicoverrideobject GetInitializer(LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute)
        {
            
returnnull;
        }

        
publicoverridevoid Initialize(object initializer)
        {
        }

        
publicoverridevoid ProcessMessage(SoapMessage message)
        {
            
switch (message.Stage)
            {
                
case SoapMessageStage.BeforeSerialize:
                    {
                        SoapClientMessage msg 
= message as SoapClientMessage;
                        msg.ContentEncoding 
="gzip";
                    }
                    
break;
                
case SoapMessageStage.AfterSerialize:
                    {
                        
this._newStream.Position =0;
                        
this._newStream.CopyTo(this._originStream);
                    }
                    
break;
                
case SoapMessageStage.BeforeDeserialize:
                    {
                        
//判斷是gzip頭那麼就進行解壓縮 這樣就對原來的程式沒有影響了if (string.Compare(message.ContentEncoding, "gzip"true==0)
                        {
                            
using (GZipStream zs =new GZipStream(this._originStream, CompressionMode.Decompress))
                            {
                                zs.CopyTo(
this._newStream);
                            }
                        }
                        
else
                        {
                            
this._originStream.CopyTo(this._newStream);
                        }

                        
this._newStream.Position =0;
                    }
                    
break;
            }
        }

相關推薦

webservice傳輸料量情況解決方案

class CompressSoapExtension : SoapExtension     {         ///<summary>/// 舊流         ///</summary>private Stream _originStream =null;         /

Mysql匯入料量的SQL檔案

問題描述:Navicat for Mysql 匯入資料量較大的sql檔案時,會提示操作失敗,如圖, 解決方法: 採用mysql source命令匯入; 操作步驟: 1. 開啟cmd,輸入命令:

EditText 自動搜尋本地資料庫(料量)卡頓解決方案

假設本地存了很多資料,按關鍵字搜尋,而且要求自動搜尋,沒有搜尋按鈕,輸入法上也沒有,就要求這種體驗,當你輸入一個字元的時候,EditText的addTextChangedListener其實就開始監聽了,比如你想搜尋abc ,其實查詢了三次資料庫,先搜a,再ab,然後才是

oracle資料庫料量時更新資料慢問題

           這今天在研究kettle工具,是一款國外純java開發的開源ETL工具,抽取資料確實非常方便,大家有空可以去下載下來試試看,方便之處在於它不用安裝,解壓完了就能直接用了(必須提前配置jdk和jre環境到系統環境中)。今天要說的不是這款軟體,問題是由使用這個軟體引起的,我在抽取資料後需

料量,高併發解決方案

解決大資料量高併發要考慮多方面的1.HTML靜態化2.靜態檔案伺服器分離  如圖片、css、js檔案等;3.資料庫叢集4.負載均衡5.快取6.讀寫分離Discuz!NT資料庫讀寫分離方案,我感覺這個還不錯http://www.cnblogs.com/daizhj/archiv

struts2 資料傳輸問題---“POST方式提交料量,在後臺接收不到資料”問題的解決

最近做用struts2做專案的時候,發現一個問題,就是當通過POST方式提交資料量過大,在後臺接收不到資料,後來通過檢視資料,發現tomcat預設傳輸最大的資料限制為2M,最後的解決辦法是設大tomcat的conf下的server.xml中8080Connector的max

介面料量,導致記憶體溢位,解決辦法

通常我們使用介面呼叫資料總是返回一段我們需要的資訊,或者是json 格式資訊,通過接收將資料儲存到程式當中,再對接收到的資料進行轉換成對應的模型格式 。目前遇到的問題是接收的資料量過於巨大,導致完整接收將導致記憶體溢位,無法進行接下去的工作 。 解決辦法: 我們將資料儲存到本地檔案 ,再通過

WCF入門(一)--Request Entity Too large 傳輸料量

      通過WCF進行資料的查詢或者新增的時候,如果資料量過大,一般會報出如下的錯誤:      1、已超過傳入訊息(65536)的最大訊息大小配額。若要增加配額,請使用相應繫結元素上的MaxRe

Hibernate在處理料量比較的時候記憶體不釋放的解決方案

                    隨著資訊化的推進,系統的依賴性也變的越來越強,所以各種資料不斷積累,資料開發率並不高,所以資料還不能準確高效的使用,這個時候我們就需要將資料匯出到Excel然後

關於料量,且SQL已經不能再優化的檢視的解決辦法(二)

         一般情況下在上篇文章的處理後,利用物化檢視,已經能夠解決複雜檢視的查詢效率了,但是有時候資料量是在過大,且檢視中使用了很多自定義的函式。這兩種情況單單是建物化檢視也提升不了效率。    第一,資料量過大,物化檢視的建立及其緩慢,而且由於由於是做資料介面,要求

java匯出excel料量解決方案

@RequestMapping("/export") public void export(HttpServletRequest request, HttpServletResponse response, FullProcess fullProcess) { /

es 在料量情況下(數十億級別)如何提高查詢效率啊?

開發十年,就只剩下這套架構體系了! >>>   

mysql查詢哪個表料量

use information_schema;select table_name,table_rows from tables where table_schema='cargo_new' order by table_rows desc limit 3 -- cargo_new (選擇資料庫)

關於JBoss7.X修改post傳輸料量(max-post-size)的問題

轉自: https://blog.csdn.net/zhangyunhao108/article/details/53140569     JBoss7.X修改max-post-size在網上百度了好久,都不是7.x修改的方式,自己用半吊子的英文水平在官網上找了找,有自己試了試,終

MySQL Insert料量導致報錯 MySQL server has gone away

接手了同事的專案,其中有一個功能是儲存郵件模板(包含圖片),同事之前的做法是把圖片進行base64編碼然後存在mysql資料庫中(欄位型別為mediumtext)然後儲存三張圖片(大概400k)的時候報錯MySQL server has gone away 然後檢視官方文件https://dev.mysql

Mybatis中使用流式查詢避免料量導致OOM

一、前言 前面介紹了裸露JDBC 方式使用流式程式設計,下面介紹下MYbatis中兩種使用流式查詢方法 二、Mybaits中MyBatisCursorItemReader的使用 2.1 配置 MyBatisCursorItemReader的注入 <bean id="myMyBa

Mysql中使用JDBC流式查詢避免料量導致OOM

一、前言 java 中MySQL JDBC 封裝了流式查詢操作,通過設定幾個引數,就可以避免一次返回資料過大導致 OOM。 二、如何使用 2.1 之前查詢 public void selectData(String sqlCmd) throws SQLException {    v

記kafka partition料量導致不能正確重啟

某臺kafka伺服器負載過高,機器掛掉一段是時間後,kill掉佔用記憶體的程序,然後重啟kafka服務,但是一直不能完成啟動和資料同步,日誌如下fset 0 to broker BrokerEndPoint(11,192.168.207.79,9092)] ) (kafka

QT快速讀取料量的Excel檔案

     最近寫的一個專案中,有需要讀取資料量很大(有10個sheet,每個sheet有65535行11列的資料)的Excel檔案,用了COM和QODBC兩種方法讀取,速度很慢。 你可能會問,為啥不把資料放在資料庫裡,那樣讀取的速度更快?當然,需求要求是可以從資料庫或者從E

利用poi將excel表中資料讀取存入mysql資料庫(料量比較

最近被老大安排了一個任務,利用程式將excle表中的資料讀取到,做處理,然後存進資料庫。接到任務的時候人是懵逼的。但是安排的任務也得硬著頭皮完成。現將做的東西記錄如下,方便以後查詢。 這個小demo的原型是在網上找的,demo連結如下 http://www.cnblogs.