Outlook 配置向导 (Outlook Configuration Wizard)

你是否发生运行Outlook配置向导时报错,但相同条件下(同机器同登录帐户)从IE中打开CRM页面没有问题? 本文试图分享一些排错经验。

 

本文首先解释一下Outlook配置向导和CRM服务器通信机制。

CRM Outlook客户端的发布分为2步: 安装和配置。CRM的安装CD安装完后此时CRM客户端数据库等信息都尚未建立起来,你必须使用配置向导设置诸如CRM服务器地址,用户帐户(每个Outlook客户端同时只能登录到一个组织中--即使你的帐号属于多个组织)等等信息。

运行配置向导前的注册表:

OutlookConfigWizard-withoutConfig

 

配置向导是调用CRM的CrmDiscoveryService.asmx来验证用户所属的组织。注意到CrmDiscoveryService.asmx有3个实现版本: AD, Passport,和SPLA.

CrmDiscoveryService

那么配置向导如何决定要调用哪个版本的CrmDiscoveryService.asmx呢? 答案是你通过页面指定

 

我的公司 (My Company): AD目录下的版本

联机服务提供商(An Online service provider): SPLA目录下的版本

OutlookConfigWizard-0

当配置好后这个认证方法会被写到ClientAuthenMethod注册表中。

HKEY_CURRENT_USER\Software\Microsoft\MSCRMClient

REG_DWORD ClientAuthMethod

健值说明:

           0:  ActiveDirectory

           1: Passport

           2: SPLA (也作ClearText)

 

那么下个问题就是:何时决定选用我的公司还是联机服务提供商?是否我服务器端配置了IFD我哪个选项都可以用呢?

答案是: 查看CRM服务器上HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\IfdInternalNetworkAddress,判断Outlook客户机的IP是否属于IfdInternalNetworkAddress指定的范围。如果你的Outlook IP 不属于IfdInternalNetworkAddress那么必须使用联机服务提供商(An Online service provider) ;否则必须使用我的公司(My Company) 选项。关于IFD方面的信息强烈推荐你访问 How to configure an Internet-Facing Deployment for Microsoft Dynamics CRM 4.0

 

接下来就是输入CRM的地址,这个地址如前因所述,需要是CrmDiscoveryService.asmx安装所在的机器地址,另外这个URL不能包含CRM Organization Name的,比如/https://<MyCrmDiscoveryServerIP>/<OrgName>这里OrgName是不必要的。对于基于角色级别的多机器安装,这点尤其需要注意!

下图是使用我的公司(My Company)选项:

image

下图是使用联机服务提供商(An Online service provider) 选项:

image

 

看到这 -- 你大概会问:我的公司(My Company)选项页面的external URL和intranet URL派什么用处呢?

External URL 这个实际用于CRM Outlook客户端动态切换认证方式的功能。具体说,比如起始Outlook配置向导配置为AD方式认证,后来因为公司配置了IFD方式的访问导致所有的Outlook的IP都处于IfdInternalNetworkAddress范围外,那么用户下次打开Outlook时候是否可以动态自然切换认证方式为IFD呢?

大致上CRM Addin (插件)运行时候使用组1和CRM服务器通信; 在认证动态切换时候如果当前ClientAuthMethod =0 (AD方式认证)需要切换到IFD,那么组3的注册表会被用到,切换完成后健值复制到组1中去;反之如果当前ClientAuthMethod =2 (IFD认证)需要切换到AD方式认证,那么组2的注册表会被用到,切换成功后健值复制到组1中去。

 

HKEY_CURRENT_USER\Software\Microsoft\MSCRMClient

组1 组2 组3 组4 组5

WebAppUrl

ServerUrl

DiscoveryUrl

IntranetWebAppUrl

IntranetServerUrl

IntranetDiscoveryUrl

ExtranetWebAppUrl

ExtranetServerUrl

ExtranetDiscoveryUrl

TrustedExtranetUrl

TrustedServerUrl

TrustedTargetUrl

Platform Service:     CrmService.asmx Deployment Service: CrmDeploymentService.asmx Discovery Service: CrmDiscoveryService. asmx
PlatformRoot ClientAuthMethod        

注:在笔者测试机器上并没有看到PlatformRoot这个健值被用到 -- 很是奇怪!

 

希望上面的介绍能更好帮助你理解配置向导 --  坦率说这个界面设计很令人费解!

 

下面介绍一下通用的排错方法

1。简单的办法是先在IE里面直接打开CRM看看是否可以访问。如果不能访问那么要首先排除帐号权限之类问题。

其次直接在IE中打开如下URL看看是否有错误

/MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx">https://<CRMServer>/MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx

/MSCRMServices/2007/AD/CrmDiscoveryService.asmx">https://<CRMServer>/MSCRMServices/2007/AD/CrmDiscoveryService.asmx

 

2。如果步骤1没有错误需要看看配置向导上输入的URL是否有错

      情况(1): URL中包含了OrgName

      情况(2): URL指向了CRM web 服务器而不是DiscoveryService所在服务器

      情况(3): URL 使用了错误的认证方式 (没有根据CRM服务器端的IfdInternalNetworkAddress来选择合适的My Company或联机服务提供商(An Online service provider)

 

3。下面是另外一些已知的KB文章:

954302    Error message when you run the Microsoft Dynamics CRM Configuration Wizard of the Microsoft Dynamics CRM 4.0 client for Outlook: "The request failed with HTTP status 401: Unauthorized"
https://support.microsoft.com/default.aspx?scid=kb;EN-US;954302

970630    Error message when you try to configure the Microsoft Dynamics CRM 4.0 client for Outlook: "The configuration wizard cannot connect to the Microsoft CRM server. This might indicate that the server is down"
https://support.microsoft.com/default.aspx?scid=kb;EN-US;970630

 

Thanks

Clifford Zhang  张立岩