讓IIS 7能夠接收大資料HTTP流的處理

來源:互聯網
上載者:User

今天發現一個vendor沒辦法通過AS2給我們送EDI 832/846檔案,去IIS log中查了下都是HTTP 404.13錯誤,看來是HTTP request資料超長了(vendor給的832/846基本都是60MB左右的),日誌如下:

#Software: Microsoft Internet Information Services 7.5#Version: 1.0#Date: 2011-10-04 00:00:01

#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken 

2011-10-04 05:28:56 172.16.70.45 POST /EdiIntReceive/ - 8004 - 172.16.72.140 haboob/5.5.2.0.8+build-3181 404 13 0 62 

 

以前配過IIS 6.0的,記得是改web.config就可以了,但IIS 7.0還沒搞過,有點摸不著地方,試過web.config加<httpRuntime>節點但也沒起作用。Google了一下終於找到了方法,而且很簡單,找到虛擬目錄屬性中的Request Filtering選項,按照圖中以下步驟,將maximum allowed content length設定大一點,比如到100 MB, 這樣就能夠接收大於預設值30000000 Bytes的http流了。

 

  

 

 

 

 

 

 以上solution是針對接收端的,實際上作為AS2發送端的vendor也可以通過一點小的配置修改就能夠來搞定問題,只需要將HTTP request改為chunked encoding,也就是分包來發送資料就可以了,比較以下兩個HTTP header就能夠說明問題

 

Non-chunked encoding 

Connection: Keep-Alive

Content-Length: 58738800

Content-Type: APPLICATION/EDI-X12

 

 

chunked encoding 

Connection: Keep-Alive

Transfer-Encoding: chunked

Content-Type: APPLICATION/EDI-X12 

 

 

在Biztalk server中,可以在send port上這樣設定來開啟chunked encoding: 

 

 

記下來,怕以後忘記了~ 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.