BizTalk使用SQL适配器获取数据(下)部署解决方案

1.      生成、部署项目

Biztalk的项目需要编译为强名称的程序集,才能部署到biztalk服务器上,biztalk项目部署到服务器上表现为一个biztalk的应用程序。

1.1.     生成强名称密钥文件

在“microsoft visual studio 2005程序组里,选“visual studio tools”--“visual studio 2005 command promte”进入命令行模式。

导航到biztalk项目所在的文件夹

输入以下命令:sn k biztalkHighway.snk

biztalk项目所在的文件夹生成biztalkHighway.snk密钥对文件。

1.2.     设置biztalk项目属性

在解决方案资源管理器中,右键点击biztalkHighway项目,选择“属性”

在属性窗口左边选“通用属性”-“程序集”,右边“强名称”下的“程序集密钥文件”,点击旁边的按钮,找到上一步生成的biztalkHighway.snk密钥对文件,选择。

在属性窗口左边选“配置属性”-“部署”,右边“biztalk组”下的“应用程序名称”,输入:BizTalkHighway。这个应用程序名称就是部署到biztalk服务器后的应用程序名。

 

1.3.     生成部署项目

在解决方案资源管理器中,选中BiztalkHighway项目,鼠标右键,选“生成”。

在解决方案资源管理器中,选中BiztalkHighway项目,鼠标右键,选“部署”。

2.      生成web services

这一步要把上面的biztalk项目中的Web_Port端口暴露为web services,这个工作由biztalk本身提供的biztalk web services发布向导来做。

biztalk程序组中启动“biztalk web services发布向导”。

欢迎页面后,向导需要选择是将业务流程发布为web serivces还是将架构发布为web serivces

这里选择将前面生成的业务流程发布为web services

点击“下一步”

选择biztalk程序集,是要指定上面项目编译后的dll文件,在biztalk项目文件夹的bin下找到BizTalkHighway.dll文件,选择。

点击“下一步”

选择业务流程端口,这里会列出选择的业务流程中所有的接收端口(因为只有接收端口才能发布为web services,包括单向的接收端口,双向的接收端口),选择需要发布的端口。本项目只有一个可以发布的端口,默认已经被选择。

默认的一个端口biztalkweb services向导生成一个asmx文件,端口中的一个操作对应一个WebMethod

一般在业务流程中一个端口包含一个操作,也就是一个接收端口对外暴露为一个WebMethod。大多数情况下,一个web services对外提供多个WebMethod,一般选择“将所有的端口合并到一个web services中”将所有端口都归入到一个asmx文件中,以便在一个web services访问多个WebMethod

点击“下一步”

指定web services属性,这里设置web services目标命名空间为:http://tempuri.org/

其他SOAP选项不用选,本项目不使用附加的SOAP标头

点击“下一步”

指定要生成的asp.Net web services的参数,位置指的是web services发布URL,就是别的系统访问此web services的地址,如图设置。

如果允许匿名访问就选择“允许匿名访问web services”。本项目允许匿名访问

选择“在以下应用程序中创建biztalk接收位置”,并在下拉列表中选择前面部署的“BizTalkHighway”项目。这个选项实际上是生成web services的物理端口,这个端口等会要跟biztalk项目业务流程中的“Web_port”逻辑端口绑定。

点击“下一步”,完成向导。

biztalk web services发布向导在http://localhost/BizTalkHighway%5FProxyWebService/已经生成了一个web services,在浏览器中输入上名的URL,可以看到这个web services

3.      配置biztalk应用程序

接下来的任务是要配置biztalk应用程序,新建物理端口,将物理端口和逻辑端口绑定。

biztalk程序组中,打开“biztalk server 管理”

biztalk管理界面的左边,如下图找到应用程序中的“BizTalkHighway_project”,这就是之前部署到biztalk server的应用程序。




在左面的窗口业务流程选择“Orchestration_1”,右边主机在下拉列表中选择“BiztalkServerApplication”。

绑定部分,就是将逻辑端口跟物理端口进行绑定。

在输入端口部分,本项目有一个入站逻辑端口“Web_Port”,在对应的接收端口(物理端口)中选择“WebPort_BizTalkHighway_ProxyWebService/WebService_BizTalkHighway”,这个物理端口就是web services向导生成的web services的物理端口。

在输出部分,是sql适配器的物理端口,需要新建。

选中出站逻辑端口中“GetListIecms_Port”端口,在右边的下拉列表中选择“新建发送端口”,弹出发送端口对话框。

 

传输类型选“SQL”,这个端口是sql适配器。点击旁边的“配置”按钮

连接字符串指向本项目使用的数据库

文档目标命名空间设为biztalk项目中sql适配器向导生成的那个xsd文件的目标命名空间http://SQLReceive

响应文档跟元素名称,设为上面xsd文件中响应根元素“GetHighwayData_ResponseRoot

点击“确定”

Sql适配器是使用xmlsql访问sql server的,所以

发送管道选:XMLTransmit

接收管道选:XMLReceive

点击确定关闭发送端口窗口,回到配置应用程序窗口,到此应用程序已配置好,点击“确定”。

4.      运行biztalk应用程序

biztalk管理界面,在“BizTalkHighway”上点击右键,选“启动(S)

之后,直接点击“启动”,biztalk开始启动应用程序的过程

三.测试biztalk的项目

上面的biztalk项目对外公开了一个web services的方法,下面建一个winform的测试项目来引用这个web services,然后调用它的WebMethod,获得的结果,显示在一个dataGridView中。

1. 新建winform项目

 

2. 引用web services

在解决方案管理器中,在TestHighway项目上点击鼠标右键,选添加web引用,弹出添加web应用对话框,把前面web services向导生成的web servicesURL输入到URL中,点击“前往”按钮


 

3. 添加代码

Form1窗体中添加一个dataGridView控件和二个button控件

单击button1,输入以下事件程序

ws.WebService_BizTalkHighway myTest = new TestHighway.ws.WebService_BizTalkHighway();
            ws.GetHighwayData_RequestRootProc_GetHighwayData high 
= new TestHighway.ws.GetHighwayData_RequestRootProc_GetHighwayData();            

            high.WayName 
= "沈大高速";
            ws.GetHighwayData_RequestRoot myRequest 
= new TestHighway.ws.GetHighwayData_RequestRoot();           
            myRequest.Proc_GetHighwayData 
= high;       
      
            System.Xml.XmlNode myNode 
= myTest.Operation_1(myRequest); 
            DataSet myDataSet 
= new DataSet();         
            System.IO.StringReader myStringReader 
= new System.IO.StringReader(myNode.OuterXml);
            XmlReader myXmlReader 
= XmlReader.Create(myStringReader);
            myDataSet.ReadXml(myXmlReader);
            dataGridView1.DataSource 
= myDataSet.Tables[0];


 

4. 运行结果


 

原文地址:https://www.cnblogs.com/abcdwxc/p/1093668.html