使用 BizTalk WCF 服务发布向导创建 WCF 服务,以便为绑定到业务流程端口的现有 WCF 接收位置发布服务元数据。
注释
在运行 BizTalk WCF 服务发布向导之前,必须生成 BizTalk 项目。 BizTalk 项目必须包含至少一个具有公共类型修饰符的接收端口的业务流程。 在发布 WCF 适配器的服务元数据之前,还必须使用 BizTalk 管理控制台或 BizTalk Server 随附的 BTSTask 命令行工具创建 WCF 接收位置。 有关如何创建 WCF 接收位置的详细信息,请参阅 WCF 适配器中每个 WCF 适配器的相应主题。
发布绑定到业务流程端口的现有 WCF 接收位置的服务元数据
单击“ 开始”,指向 “所有程序”,指向 Microsoft BizTalk Server 20xx,然后单击 “BizTalk WCF 服务发布向导”。
注释
若要为 BizTalk 业务流程和架构创建和发布 WCF 服务元数据,请使用 BizTalk WCF 服务发布向导。 若要使用 SOAP 适配器将业务流程和架构发布为 Web 服务,请使用 BizTalk Web 服务发布向导。
在 “欢迎使用 BizTalk WCF 服务发布向导” 页上,单击“ 下一步”。
在 WCF 服务类型 页面上,选择 “仅元数据终结点 (MEX)” 选项,以发布 WCF 服务,从而为您下一步选择的 WCF 接收位置提供服务元数据。
在 WCF 服务类型 页上,在 “发布接收位置元数据 ”下拉列表中,选择要为其发布服务元数据的 WCF 接收位置,然后单击“ 下一步”。
在“ 创建 WCF 服务 ”页上,选择“ 将 BizTalk 业务流程发布为 WCF 服务”,然后单击“ 下一步”。
在 BizTalk 程序集 页面的 BizTalk 程序集文件(*.dll) 文本框中,键入 BizTalk 程序集文件的名称,或者单击 “浏览” 选择包含业务流程的程序集以发布服务元数据,然后单击 “下一步”。
注释
在选择 BizTalk 程序集文件之前,请使用 BizTalk 程序集将所有依赖程序集复制到同一文件夹中,或将依赖程序集安装到全局程序集缓存(GAC)。
注释
如果将 BizTalk 程序集文件安装到 GAC 中,请确保 GAC 中的程序集已使用将在 BizTalk 程序集 对话框中选择的程序集进行更新。 如果 GAC 中的程序集具有相同的完全限定名称,BizTalk WCF 服务发布向导将使用 GAC 中的程序集文件,而不是所选程序集文件。
注释
长度超过 260 个字符的路径可能会导致错误消息,指出路径太长。
在 “业务流程和端口 ”页上,单击加号(+)展开每个程序集和业务流程的树节点。 通过选中相应的树节点复选框,选择要为其发布元数据的业务流程和端口。 如果要为所有选定的接收端口创建一个 WCF 服务(.svc 文件),而不是为每个接收端口创建一 个 WCF 服务,请选择“将所有选定的端口合并到单个 WCF 服务 ”选项中,然后单击“ 下一步”。
注释
将所有选定的端口合并到单个 WCF 服务中时,所有所选端口都具有相同的端口类型,并且端口中的作名称是唯一的。
在 WCF 服务属性 页上的 WCF 服务文本框的 Targetnamespace 中,键入 WCF 服务的目标命名空间,然后单击“ 下一步”。
在 WCF 服务位置 页上的“ 位置 ”文本框中,键入生成 WCF 服务的 Web 目录名称。 可以接受默认位置(
http://localhost/<BizTalk Assembly Name>)、在“ 位置” 文本框中键入 WCF 服务的位置,或单击“ 浏览 ”并选择 Web 目录。 选择以下任一选项:覆盖现有项目。 仅当 Web 目录已存在时,此选项才可用。 只有在选择此选项时,才能发布到同一位置。 否则,必须输入其他项目位置。
允许匿名访问 WCF 服务。 此选项将匿名访问添加到创建的虚拟目录。 默认情况下,虚拟目录从其父虚拟目录或网站继承访问权限(如果它是顶级虚拟目录)。
完成此页面后,单击“ 下一步”。
注释
项目位置可以存在于其他服务器上。 若要将 WCF 服务发布到其他服务器,请键入项目名称作为
http://<servername>/<WCF service location>。注释
项目位置可以存在于非默认网站上。 发布到非默认网站时,请在 URL 中包含网站的端口号。 例如,
http://<servername>:8080/<WCF service location>。注释
向导在 Web 应用程序的 App_DataTemp 文件夹中创建的 BindingInfo.xml 文件使用管道的默认值。 接收管道的默认值为 Microsoft.BizTalk.DefaultPipelines.XMLReceive 管道,发送管道的默认值为 Microsoft.BizTalk.DefaultPipelines.PassThruTransmit 管道。
在 WCF 服务摘要 页上,查看 WCF 服务的设置。
单击“ 创建 ”以创建 WCF 服务。
单击“ 完成 ”以完成 BizTalk WCF 服务发布向导。
配置 Web 应用程序以发布服务元数据
为 BizTalk WCF 服务发布向导创建的 Web 应用程序启用 ASP.NET。 有关详细信息,请参阅 “启用 Web 服务”。
注释
如果使用 Windows Server 2008 或 Windows Vista,必须将应用程序池的标识帐户添加到 BizTalk Server 管理员组。 将相应的帐户添加到 BizTalk Server 管理员组后,需要重启 IIS 服务才能生效。
打开命令提示符,转到 BizTalk WCF 服务发布向导使用记事本在 %SystemDrive%\InetPub\, and then open the Web.config 文件中创建了 WCF 服务的文件夹。
在记事本中 <,在 system.web> 元素中添加以下行:
<trust level="Full" originUrl="" />注释
此设置是可选的,它使得托管已发布 WCF 服务的 ASP.NET 应用程序能够访问任何受操作系统安全性约束的资源。 这是在使用已发布的 WCF 服务在同一台计算机上安装和运行 Windows SharePoint Services 时 WCF 所需的信任级别。
在 Internet Explorer 的 “地址 ”框中,使用 http:// host[:p ort]/apppath/wcfservicename.svc 格式键入 WCF 服务的 URL,以测试已发布的 WCF 服务。 下表介绍了这些参数。
参数 价值 host[:port] 部署 WCF 服务的计算机的名称。 冒号和端口号可以遵循此服务器名称。 apppath 虚拟目录和 Web 应用程序路径的名称。 wcfservicename.svc WCF 服务 .svc 文件的名称。 若要防止无意中泄露潜在的敏感服务元数据,建议通过执行以下任务在生产环境中禁用此行为:
在记事本中打开 Web.config,其位于 BizTalk WCF 服务发布向导在 %SystemDrive%\InetPub\ 中创建的 WCF 服务的文件夹中。
在记事本中,将<serviceMetadata>元素中的httpGetEnabled属性设置为 false,如以下行所示:
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
另请参阅
如何使用 BizTalk WCF 服务发布向导来发布用于基于内容路由的 WCF 接收位置的服务元数据
演练:使用 WCF-NetMsmq 适配器发布 WCF 服务