Today, we found that a vendor could not send the EDI 832/846 file to us through as2. It was an HTTP 404.13 error when I went to the IIS log, it seems that the HTTP request data is too long (about 60 MB for 832/846). The log is as follows:
# 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
05:28:56 172.16.70.45 post/ediintreceive/-8004-172.16.72.140 hsf-b/5.5.2.0.8 + build-3181 404 13 0 62
I used to configure IIS 6.0. I remember modifying web. config, but I haven't done IIS 7.0 yet. I have tried web. config and<Httpruntime>NodeBut it does not work either. Google finally found the method, and it is very simple. Find the request filtering option in the virtual directory attribute, set the maximum allowed content length to a larger value, such as 100 MB, in this way, you can receive HTTP streams larger than the default value of 30000000 bytes.
The above solution is for the receiving end. In fact, as the as2 sending end, the vender can also solve the problem through a small Configuration modification. You only need to change the HTTP request to chunked encoding, that is to say, you can send data through subcontracting. By comparing the following two HTTP headers, you can describe the problem.
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
...
In BizTalk Server, you can set chunked encoding on the Send Port as follows:
Write it down. I'm afraid I will forget it later ~