如何将虚拟目录添加到应用程序

本主题介绍如何使用 BTSTask 命令行工具将虚拟目录添加到 BizTalk 应用程序。 此选项在 BizTalk Server 管理控制台中不可用。 如果已编写自定义 Web 服务或创建 ASP.NET 网站以与 BizTalk Server 交互,并且想要使用应用程序部署虚拟目录,则可能需要添加虚拟目录。

将虚拟目录添加到应用程序的另一种方法是为 SOAP 或 HTTP 接收位置指定虚拟目录,如 如何配置 HTTP 接收位置中所述。 在所有情况下,虚拟目录都会添加到 BizTalk 管理数据库。 使用命令行添加虚拟目录时,它还显示在 BizTalk Server 管理控制台中、在其中添加虚拟目录的应用程序的资源文件夹中以及使用 ListApp 命令时应用程序中的项目列表。 如果以后导出应用程序,然后将其导入另一个 BizTalk 组,则虚拟目录将显示在“资源”文件夹中。

将虚拟目录添加到应用程序时,请记住以下几点:

  • 可以通过指定覆盖选项来覆盖应用程序中已存在的虚拟目录。 只有当现有虚拟目录和您要添加的虚拟目录同名时,才需要“覆盖”选项。 如果未指定,并且应用程序中已存在与所添加目录同名的虚拟目录,则添加作将失败。

  • 使用包含 https 的 URL 添加虚拟目录时,必须在指定的 URL 中使用 http 而不是 https。 如果使用 https,则添加虚拟目录的作将失败。 即使在 URL 中使用 http 添加它,Internet Information Services 元数据库中 URL 的 https 设置也会生效,虚拟目录将正常运行。

  • 如果从 64 位版本的 Web 服务中添加虚拟目录,并且尝试在 32 位计算机上安装包含虚拟目录的应用程序,则不会安装虚拟目录。 它必须安装在 64 位计算机上。

重要

导入包含虚拟目录的应用程序时,虚拟目录上的安全设置是在应用程序导出期间生成 .msi 文件时生效的。 如果要在导出应用程序之前将应用程序部署到生产环境,则应验证设置是否符合安全要求。

但是,如果目标环境中已存在虚拟目录,则现有虚拟目录上的安全设置将生效。 它们不会更改以匹配要部署的虚拟目录中的那些项。 在这种情况下,应验证现有虚拟目录中的安全设置是否符合要求。

谨慎

如果虚拟目录使用 HTTPS(基于安全套接字层的超文本传输协议)协议,则导出期间不会保留其安全设置,并且导入时,虚拟目录将继承根的安全设置。 应验证安全设置是否符合要求。

先决条件

若要执行本主题中的过程,必须使用 BizTalk Server 管理员组成员的帐户登录。 有关权限的详细信息,请参阅 部署和管理 BizTalk 应用程序所需的权限

将虚拟目录添加到应用程序

  1. 按如下所示打开命令提示符:单击“ 开始”,单击“ 运行”,键入 cmd,然后单击“ 确定”。

  2. 键入以下命令,替换相应的值,如下表所述:

    BTSTask AddResource [/ApplicationName:value] /Type:System.BizTalk:WebDirectory[/Overwrite] /Source:value [/Destination:value] [/Server:value] [/Database:value]

    示例:

    BTSTask AddResource /ApplicationName:MyApplication /Type: System.BizTalk:WebDirectory /Overwrite /Source:http://Host1:90/MyVirtualDirectory /Destination:http://Host2:90/MyVirtualDirectory /Server:MyDatabaseServer /Database:BizTalkMgmtDb

    参数 价值
    /ApplicationName 要向其添加虚拟目录的 BizTalk 应用程序的名称。 如果未指定应用程序名称,则使用组的默认 BizTalk 应用程序。 如果名称包含空格,则必须用双引号(“)将其括起来。
    /类型 System.BizTalk:WebDirectory (此值不区分大小写。
    /改写 用于更新现有虚拟目录的选项。 如果未指定,并且应用程序中已存在与要添加的虚拟目录同名的虚拟目录,则 AddResources作将失败。
    /源 源虚拟目录的 URI。
    /目的地 从 .msi 文件安装应用程序时,要分配给虚拟目录的 URI。 如果未指定此参数,则将 Source 参数的值与 localhost 一起使用作为主机。
    /服务器 托管 BizTalk 管理数据库的 SQL Server 实例的名称,格式为 ServerName\InstanceName,Port。

    仅当实例名称不同于服务器名称时,才需要实例名称。 仅当 SQL Server 使用默认值(1433)以外的端口号时,才需要端口。

    例子:

    Server=MyServer

    Server=MyServer\MySQLServer,1533

    如果未提供,则使用本地计算机上运行的 SQL Server 实例的名称。
    /数据库 BizTalk 管理数据库的名称。 如果未指定,将使用在本地 SQL Server 实例中运行的 BizTalk 管理数据库。

另请参阅

管理 .NET 程序集、证书和其他资源
AddResource 命令:虚拟目录
创建和修改 BizTalk 应用程序