今天发现一个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: 

 

 

记下来,怕以后忘记了~ 

 

posted @ 2011-10-06 07:16 Andre 阅读(134) 评论(0) 编辑
摘要: CSV文件作为一种的简单数据文件交换标准,在商业上活动尤其是B2B中被大量采用。 在Biztalk中可以使用Flat File Disasembler来解析这类格式的文件,以下样例采用Biztalk Server 2006 R2作为开发环境。 阅读全文
posted @ 2008-10-31 23:12 Andre 阅读(578) 评论(0) 编辑
摘要: Biztalk 2006 R2中使用集成的EDI Outbound Batching能够很容易地实现打包发送EDI文档的功能。 以下是在EDI Outbound Batching中起重要作用的4个Promoted Context: EDI.ToBeBatched EDI.ToBeRouted EDI.DestinationPartyID EDI.EncodingType 以及集成在Biztalk EDI Application中的3个Orchestration Microsoft.BizTalk.Edi.BatchSuspendOrchestration.BatchElementSuspendService Microsoft.BizTalk.Edi.BatchingOrchestration.Ba阅读全文
posted @ 2008-08-19 23:35 Andre 阅读(297) 评论(0) 编辑

以下是Biztalk EDI X12文件的schema中使用到各种数据类型:

X12_N   - 数字类型(integer)

X12_R   - 实数类型(real)。 格式为 [sign]integral-digits[.[fractional-digits]], Sign(符号)只能是“-”,不允许是“+”
注意:
在VS2005 IDE中使用shema来验证xml实例,若该类型的节点内容前后带有数字"0"或着空格时(如12.20, 005),会出现类似以下的错误提示
Error 16 Segment level  : Field Error : Segment ID - MEA : Field Position - 3 : Current value - 12.20 : [6] Invalid character in data element
这种xml实例无论如何也通不过shema验证,
不过只要在Party的EDI属性X12 Properties -> Party as Interchage Sender -> ACK Generation and Validation Settings中,
将Allow leading and trailing zeros and spaces复选框勾上,那么在EDI pipeline进行解析的运行时就可以让这种xml通过验证了


X12_AN - 字符或数字类型(alphanumeric)

X12_ID  - 枚举类型

X12_DT - 日期类型(DateTime)

X12_TM - 时间类型(Time)

X12_Nx - 指定了小数位的数字类型。x > 0,假如设定为"N2",则代表x12文件经过pipeline解析后数值1234会转换为12.34
注意:
激活自动转换的功能需要在Party的EDI属性X12 Properties -> Party as Interchage Sender -> ACK Generation and Validation Settings中,
将Convert implied decimal format Nn to base 10 numeric value复选框勾上


--其实着以上类型都与ANSI EDI X12文档的标准类型定义是一致的

posted @ 2008-06-14 21:35 Andre 阅读(332) 评论(0) 编辑
posted @ 2008-01-02 23:23 Andre 阅读(2944) 评论(6) 编辑
摘要: 对于数字系统中进制间的转换,堆栈无疑是最好的选择,也是最能体现堆栈好处的地方。以下是我用C#写的一个简单实现十进制数向2,8,16进制间的转换:(当然,CLR还有更简单的方法,那就是Convert.ToString(int value, int toBase),value是需要转换的十进制数,toBase是将要转换的进制类型,2, 8或16进制)namespaceCRLDemo{classProg...阅读全文
posted @ 2007-09-24 10:05 Andre 阅读(486) 评论(1) 编辑
摘要: 一个超级恶搞的网站: http://www.msfirefox.com/从界面上看,这个网站从头到尾还真跟微软官方网站差不多,不但MSFirefox介绍板块模仿IE7的,就连网址前的小图标、版权声明都没有放过,细心程度可见一斑。整个网站功能齐全,各种分类项目都非常详细,真是……有功夫啊。根据这个网站的“新闻稿”,Firefox的Luva69已经被炒鱿...阅读全文
posted @ 2006-11-11 08:33 Andre 阅读(107) 评论(0) 编辑
摘要: 前段时间在使用DAAB(Data Access Application Block) 2.0中的SqlHelper对象来做数据填充,因为2.0版本的SqlHelper里多了一个FillDataset方法很好使,特别是在你想使用存储过程一次性返回多个数据表时非常有用,它的一个重载方法中可以传入一个string[]类型的表名列表。但是在填充数据集的过程中,发现只要数据集中的表大于三张时老是会出问题,开...阅读全文
posted @ 2006-08-14 10:28 Andre 阅读(756) 评论(1) 编辑
摘要: 今天晚上就是世界杯开幕式了,好兴奋!!大家一定都听说过Google和Nike联办了一个Blog网站,网址是www.joga.com,专门提供给足球爱好者进行交流,由nike提供娱乐内容,google提供网站搭建平台,就算你没听说过,但至少你可能也看过该网站的广告吧,只是可能没太在意,实际上nike最近的世界杯系列广告中充斥了joga网站的logoJoga的帮助中这样写道:Joga 是 Google...阅读全文
posted @ 2006-06-09 16:18 Andre 阅读(92) 评论(0) 编辑
摘要: 相信数组是大家在编程最常使用的,不论任何语言都存在数组这样的数据结构,由于C#语言是完全面向对象的,所以在C#中的数组也是对象,实际上就是Array类的实例,Array类的使用可以说是使用最频繁的,只是大家在使用时都没太在意,如在创建数组int[]时实际上就创建了一个Array类对象的实例。最近我仔细研究了一下C#中的Array及ArrayList类之间的异同,总结了以下几点:[Array和Arr...阅读全文
posted @ 2006-05-31 00:08 Andre 阅读(9991) 评论(5) 编辑