BizTalk开发系列(二) "Hello World" 程序搬运文件
我们在<QuickLearn BizTalk系列之"Hello World">里讲到了如何快速的开发第一个BizTalk 应用程序。现在我们来讲一下如何把这个程序改成用于搬运文件的程序。
我们的设想是:不管文件的类型是什么,将文件从In 文件夹搬到 Out 文件夹。我们来看看应该怎么实现这个设想。
首先我们会发现"Hello World"程序在接收位置的文件名称是" *.XML ".也就是说它只接收XML文件类型的文件。既然它支持通配符的表达式那么我们就可能把这里改为:" * " 也就是说让它支持任何类型的文件。(在Windows系统中允许文件没有扩展名,所以我们就用*让它代表所有的文件)
![]()
我们的测试数据有三种类型的文件,分别是:XML, ZIP, Gif。现在我们将这三种类型的文件拷贝到In文件夹。再看看输出文件夹:
[输入文件]
![]()
[输出文件]
![]()
很显然,我们输入的文件都已经被输出到正确的目标下了。也就是说BizTalk成功的路由了消息。但是这跟我们设想的还有点差距。输出的文件中除了XML 类型的消息可以被正确访问之外。其他文件需要更改为相应的文件后缀才可以被访问。但我们希望的是输入的文件在输出的时候还能够保持原样(文件名,文件大 小,文件类型)。那么我们接下来就要在发送端口做一下改变了。做什么改变呢?我们要让BizTalk输出文件的时候保持原有的文件名和后缀。
![]()
打开发送端口的类型配置对话框。我们会发现在文件名的表达式里有一个特别的关键字“%MessageID%”。这个表达式其实是BizTalk的宏,它表示的是这个消息在BizTalk中的ID号 。也就是说在执行的时候它会被真实的值给替换。
现在我们将这个表达式改为: %SourceFileName% . 这个宏的意思是保留原文件名称。
OK,现在我们配置好了。我们来看一下执行的效果。我们发现文件按照原有文件名被输出出来,而且可以被正常访问。
![]()
注意事项:本文主要是为了讲如何实现这一需求。在生产环境中使用该方法要考虑更多的因素:
文件大小 对于消息的处理需要对服务器做进一步的调整,目前微软官方已经测试通过了 2G的单文件。
数据库的维护 BizTalk的所有消息都是保存在BizTalk数据库里的所以要做好BizTalk 数据库的管理
系统稳定性 如果处理的文件过大,过多会造成系统的不稳定。
系统性能 不同的适配器性能表现不一样。
BizTalk开发系列(二) "Hello World" 程序搬运文件的更多相关文章
- BizTalk开发系列(二十八) MSMQ 适配器
MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...
- BizTalk开发系列(二十二) 开发自定义Map Functoid
尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...
- BizTalk开发系列(二十五) SQL Adapter
SQL Server 是.NET开发的首选数据库.当然开发BizTalk应用程序很多也离不了SQL Server.针对SQL Server的数据操作BizTalk 提供了SQL Adapter作为与数 ...
- BizTalk开发系列(二十六) 使用Web Service
Web Service是在构建SOA平台中广泛使用的技术.在BizTalk开发过程中使用SOAP适配器接收和发送 Web Services 请求.业务流程可以发布为 Web Services 并使用外 ...
- BizTalk开发系列(二十九) 宏的使用
在BizTalk中可以使用宏集合动态的让BizTalk发送处理程序使用单独的值来替换宏.常用的使用宏的发送程序有:文件发送适配器和SMTP发送适 配器.在表达式中可以使用同时使用多个宏.例如:在文件发 ...
- BizTalk开发系列(二十四) BizTalk项目框架建议
Asp.NET有MVC框架,大部份的开发都是按照MVC进行的.BizTalk是面向消息的开发,不能完全采用分层的开发模式.而微软只提供了 BizTalk项目开发的基本策略,通过分析相关的Complex ...
- BizTalk开发系列(二十三) BizTalk性能指标参考
BizTalk项目目前比较少,使用的客户也不多.大多只知道BizTalk是一个不错的产品,是Microsoft SOA平台的核心产品,不过还没有将其应用到生产环境.还有一些客户对BizTalk的性能不 ...
- BizTalk开发系列(二十一) Mapping 扩展开发
BizTalk Map编辑器提供了常用的功能块,比如数据库,字符串,数字计算等功能.可在设计Map时直接使用这些功能块进行扩展.除此之外对于进行复杂的Map处 理,Map 编辑器提供了扩展XSLT,扩 ...
- BizTalk开发系列(二十) 类型作用域
Orchestration中的Type概念跟.NET 里的Class一样,可以在Orchestration开过过程中将多个实例绑定到一种类型.Orchestration 视图里包括的类型有Port T ...
随机推荐
- jQuery插件开发--(转)
1,开始 可以通过为jQuery.fn增加一个新的函数来编写jQuery插件.属性的名字就是你的插件的名字: jQuery.fn.myPlugin = function(){ //开始写你的代码吧! ...
- hdu1712 分组背包
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1712 题意:有n门课程,和m天时间,完成mp[i][j]得到的价值为第i行j列的数字,求最 ...
- 浩瀚PDA无线POS盘点机(安装盘点程序):盘点结果实时上传到PC电脑端
手持终端机的盘点部分改进, 1可以通过wifi联网到后台, 2也可以暂存在手持终端机上,盘点完后一次性上传到电脑上.
- 关于oracle ORA-28001的解决方法
今天发现客户的机器上的系统登录不上了,并且提示如下情况: 发现原来Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修 ...
- MFC 打开文件夹 调用其他程序 打开文件
ShellExecute(NULL,TEXT("OPEN"),要打开的文件的路径,NULL,NULL,SW_SHOWNORMAL); ShellExecute(NULL, &quo ...
- HTML <!DOCTYPE> 标签
在默认情况下,FF和IE的解释标准是不一样的,也就是说,如果一个网页没有声明DOCTYPE,它就会以默认的DOCTYPE解释下面的HTML.在同 一种标准下,不同浏览器的解释模型都有所差异,在默认情况 ...
- jQuery入门第一天
使用jQuery之前,我们需要加一些代码到HTML文件中. 首先在页面顶端增加一行script元素,然后写上结束符. 浏览器会运行script 里所有的Javascript,包括jQuery. 在你的 ...
- iOS学习05C语言函数
本次主要是学习和理解函数,函数树状图如下: 1.函数的声明和定义 函数定义的四要素分别为: 返回值类型 :函数的结果值类型,函数不能返回数组. 指定返回类型是void类型说明函数没有返回值. 函数名 ...
- BZOJ4428 : [Nwerc2015]Debugging调试
设$f[i]$为最优策略下调试$i$行代码的时间,则: $f[1]=0$ $f[i]=\min((j-1)\times p+f[\lceil\frac{i}{j}\rceil])+r$ 意义为枚举pr ...
- gulp下静态资源的合并、压缩、MD5后缀
var gulp = require('gulp'); var RevAll = require('gulp-rev-all'); var uglify = require('gulp-uglify' ...