如何使用 BizTalk Web 服务发布向导将业务流程发布为 Web 服务
可以使用 BizTalk Web Services 发布向导将业务流程发布为 Web Services。
注意
请注意,在运行 BizTalk Web Services 发布向导之前,必须构建 BizTalk 项目。
注意
可以使用命令行工具 BTSWebSvcPub.exe 将业务流程发布为 Web Services。 有关详细信息,请参阅 BTSWebSvcPub Command-Line 参考。
将业务流程发布为 Web Services
单击“开始”,指向“所有程序”,指向“Microsoft BizTalk Server”,然后单击“BizTalk Web Services 发布向导”。
在 “欢迎使用 BizTalk Web 服务发布向导” 页上,单击“ 下一步”。
在 “创建 Web 服务 ”页上,选择“ 将 BizTalk 业务流程发布为 Web 服务”,然后单击“ 下一步”。
在 “BizTalk 程序集 ”页上的“BizTalk 程序集文件 (*.dll) ”文本框中,键入 BizTalk 程序集文件的名称,或单击“ 浏览 ”浏览以浏览到包含要发布的业务流程 () 的程序集,然后单击“ 下一步”。
注意
选择 BizTalk 程序集文件之前,将所有依存程序集复制到 BizTalk 程序集所在的文件夹中,或将依存程序集安装到全局程序集缓存 (GAC) 中。
注意
如果将 BizTalk 程序集文件安装到 GAC 中,请确保 GAC 中的程序集已更新为将在 “BizTalk 程序集 ”对话框中选择的程序集。 如果 GAC 具有相同的完全限定名,则 BizTalk Web Services 发布向导将使用 GAC 中的程序集文件而不是你选择的程序集文件。
注意
如果你在 Visual Studio 中打开的 BizTalk Web Services 发布向导包含业务流程,BizTalk 程序集文件将使用包含该业务流程的程序集进行填充。
注意
路径长度超过 260 个字符时,可能会收到错误消息,指示路径太长。
在“ 业务流程和端口 ”页上,单击加号展开每个程序集和业务流程的树节点。 选中相应树节点的复选框以选择要发布的业务流程和端口。 如果要为所有所选接收端口创建一个 Web 服务 (.asmx) ,而不是为每个接收端口创建一个 Web 服务,请选择“ 将所有所选端口合并到单个 Web 服务 ”选项,然后单击“ 下一步”。
注意
将所有选定端口合并到一个 Web Services 后,所有选定端口都具有相同的端口类型,并且端口中的操作名称都是唯一的。
在 “Web 服务属性” 页上的“ Web 服务的目标命名空间 ”框中,键入 Web 服务的目标命名空间,选择相应的框以指定向导应如何处理 SOAP 标头和 SharePoint Portal Server 2007 Single Sign-On (SSO) Web 服务支持。 如果要进一步自定义 Web 服务实现,请单击“ 高级 ”按钮。 这将显示更多可用选项:
选项 值 说明 SOAP 参数样式 默认 该选项指定在 SOAP 消息中如何设置参数格式。 有关详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=62259SoapParameterStyle 枚举。 SOAP 参数样式 Bare 该选项指定在 SOAP 消息中如何设置参数格式。 有关详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=62259SoapParameterStyle 枚举。 SOAP 参数样式 Wrapped 该选项指定在 SOAP 消息中如何设置参数格式。 有关详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=62259SoapParameterStyle 枚举。 一致性声明 无 该选项指定绑定声明所符合的 Web Services 互操作性 (WSI) 规范。 有关详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=193064WebServiceBindingAttribute.ConformsTo 属性。 一致性声明 WS-I 基本配置文件 1.1 该选项指定绑定声明所符合的 Web Services 互操作性 (WSI) 规范。 有关详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=193064WebServiceBindingAttribute.ConformsTo 属性。 强制请求响应 [默认值] 该选项指定单向 BizTalk 操作是否应作为请求-响应 Web 方法公开。 默认值不强制单向标志。 强制请求响应 否 该选项指定单向 BizTalk 操作是否应作为请求-响应 Web 方法公开。 默认值不强制单向标志。 强制请求响应 是 该选项指定单向 BizTalk 操作是否应作为请求-响应 Web 方法公开。 默认值不强制单向标志。 在 “Web 服务属性” 页上,单击“ 下一步”。
注意
选择的任何 SOAP 标头选项全局应用于在运行此向导实例时创建的所有 Web Services 和 Web 方法。
如果选择了 “添加其他 SOAP 标头 ”选项,将显示 “请求 SOAP 标头 ”和 “响应 SOAP 标头” 页。 可以使用以下对话框中的“添加”和“删除”按钮 添加 和 删除 请求和响应 SOAP 标头:
若要添加 SOAP 标头,请单击“ 添加”。 在 BizTalk 程序集文件 (*.dll) 文本框中,键入或浏览包含 SOAP 标头架构的程序集。 “可用架构类型”列表视图显示架构的每个根元素。 选择要作为请求或响应 SOAP 标头添加的根节点。 若要选择多个项,请按住 Ctrl 键并单击“ 确定”。
若要从列表中删除 SOAP 标头,请从添加的 SOAP 标头列表中选择它,然后单击“ 删除”。
单击每个 SOAP 标头页上的“下一步”以继续向导。
注意
目标命名空间和根元素名称可定义 SOAP 标头。
注意
如果同一目标命名空间/根元素名称组合是作为请求和响应 SOAP 标头添加的,则不会将该标头视为传入/传出标头。 必须在业务流程内部手动将传入标头复制到传出标头。
注意
同一目标命名空间/根元素名称组合只能作为请求 SOAP 标头和响应 SOAP 标头各添加一次。
在 “Web 服务项目 ”页上的“ 项目名称 ”文本框中,键入项目的名称。 可以接受默认位置 (
http://localhost/<project_name>
) ,在“项目位置”文本框中键入项目 的位置 ,或单击“ 浏览 ”并选择 Web 目录。 选择以下任何选项:覆盖现有项目。 仅当项目位置已存在时,此选项才可用。 仅当选择了此选项时,你才能够发布到同一位置。 否则,必须输入不同的项目位置。
允许匿名访问 Web 服务。 此选项会为已创建的虚拟目录添加匿名访问权限。 默认情况下,虚拟目录继承其父虚拟目录或网站(如果该目录是顶级虚拟目录)的访问权限。
创建 BizTalk 接收位置。 此选项自动创建与每个生成的 .asmx 文件对应的 SOAP 适配器接收端口和位置。 如果接收位置已经存在,则不会替换它。 SOAP 适配器的接收位置使用 /<virtual directory name>/<orchestration namespace_typename_portname.asmx> 格式解析。 选择此选项后,选择将在其中生成接收端口和位置的应用程序。
注意
项目位置可位于其他服务器上。 若要将 Web 服务发布到其他服务器,请键入项目名称作为
http://<servername>/<project_name>
。注意
项目位置可位于非默认网站上。 发布到非默认网站时,请在该 URL 中包括网站的端口号。 例如,
http://localhost:8080/<project_name>
。注意
在使用向导创建接收位置时,向导会使用默认值创建接收位置。 接收管道的默认值为 Microsoft.BizTalk.DefaultPipelines.PassThruReceive 管道。 如果通过已发布的 Web 服务接收的消息需要任何特殊的管道处理 (例如验证、关联/属性提升或入站/出站映射) 则应将接收管道设置为 Microsoft.BizTalk.DefaultPipelines.XMLReceive 或自定义管道。
注意
当通过业务流程使用(调用)Web Services 时,SOAP 适配器仅支持直通样式的发送管道。 你可以使用自定义发送管道,但是无法包含修改消息正文部分的组件。 这些组件包括 XML 组装器和任何编码组件。
注意
当到达此页面时,如果选择退出选择“ 将架构发布为 Web 服务 ”选项,则在“ Web 服务 ”页中,你可能会看到 Web 服务说明 显示之前选择的 BizTalk 程序集中的服务和方法名称,然后再从 “将 BizTalk 业务流程发布为 Web 服务 ”选项。 这是因为更改发布方法时未清除内存中的 Web Services 说明。
单击“ 下一步 ”查看 ASP.NET Web 服务项目的设置。
单击“ 创建 ”以创建 ASP.NET Web 服务。
单击“ 完成 ”以完成 BizTalk Web 服务发布向导。
注意
如果在 Windows Vista 上将业务流程发布为 Web Services,则必须更新承载该服务的虚拟目录。 为此,请从命令提示符发出以下命令,将 <vdir> 替换为虚拟目录的名称:%systemroot%\system32\inetsrv\APPCMD.EXE migrate 配置“默认网站/<vdir name>”。