解决 Web 服务权限问题的指南

Microsoft BizTalk Server 广泛使用 Web 服务,以便与 SOAP 适配器一起使用,并在将业务流程发布为 Web 服务时使用。 本主题提供了一些关于尽量减少 Web 服务权限问题的一般准则,以及你可以遵循的步骤来排查影响BizTalk Server的 Web 服务权限问题。

一般性指导

  • 设置用户帐户:确保与托管 Web 服务的虚拟目录关联的 IIS 应用程序主机进程标识设置为特定用户帐户,并确保将此用户帐户添加到以下组:

    • BizTalk Isolated Host Users(域组或本地组)

    • IIS_WPG(本地组)

      要向由 BizTalk Web Services 发布向导创建的 Web Services 授予将 SOAP 请求消息发布到 BizTalk MessageBox 数据库中(随后将激活订阅业务流程)的正确权限,必须首先成为这两个组的成员。 有关确定或设置 IIS 应用程序主机进程标识的详细信息,请参阅解决 IIS 权限问题指南设置 IIS 应用程序主机进程标识部分。

  • 对 TEMP 环境变量指定的文件夹设置权限:确保承载 Web 服务的虚拟目录的 IIS 应用程序主机进程标识对 TEMP 环境变量指定的文件夹具有读取和写入权限。 若要确定由 TEMP 环境变量指定的文件夹,请在 BizTalk Server 上打开命令提示符,键入以下命令,然后按 Enter:

    echo %TEMP%
    

    Web Services 在由 TEMP 环境变量指定的文件夹中实时 (JIT) 编译为动态链接库 (dll) 文件,因而必须由此用户帐户通过读写权限来访问该文件夹。

  • 在 SOAP 方法调用中发送凭据:确保 Web 服务客户端在 SOAP 方法调用中发送凭据。 默认情况下,Windows Server 2008 SP2 中的 IIS 7.0 需要 Windows 身份验证。 当使用 Internet Explorer 测试 Web Services 时,会自动发送当前登录的用户的凭据,这就是 Web Services 可以在 Internet Explorer 中工作但却无法在其他客户端中工作的原因。 如果 Web Services 客户端未将凭据添加到 SOAP 方法调用中,则会由于身份验证失败而产生 SOAP 异常。 有关在 SOAP 方法调用中发送凭据的详细信息,请转到 System.Net.Http:HttpClient 类

  • 排查调用 Web 服务时出现的错误:如果在调用 Web 服务时发生错误,检查应用程序日志或通过“BizTalk Server管理组中心”页跟踪消息事件和服务实例。 有关错误可能原因的详细信息,请参阅监视BizTalk Server和使用组中心页

  • 收集调试信息:若要获取详细的调试信息,如果执行上述步骤无法解决问题,请按照 调试已发布 Web 服务 主题中所述的步骤进行操作。

另请参阅

解决 IIS 权限问题的BizTalk Server权限指南