症状
当您在运行 Microsoft 客户服务框架 (CCF) 的环境中使用代理桌面应用程序或 Microsoft 管理控制台 (MMC) 时,有 Microsoft.NET Framework 3.5 Service Pack 1 (SP1) 安装的 Windows 客户端接收以下事件查看器应用程序日志中的错误消息:错误消息 1
ListenerConfiguration 在试图访问配置 web 服务时遇到问题。HTTP 请求是未经授权的客户端身份验证方案协商。从服务器收到的身份验证标头是协商。
错误消息 2
ListenerConfiguration 在试图访问配置 web 服务时遇到问题。HTTP 请求是未经授权的客户端身份验证方案协商,NTLM。从服务器收到的身份验证标头是协商。
此外,如果您使用代理桌面时,应用程序无法启动。如果代理桌面配置文件和 CCFInfrastructure 数据库中所使用的端点 Url 指向实际服务器的 NetBIOS 名称承载 CCF Web 服务,将出现此问题。如果您使用 MMC 中与实际的 NetBIOS 名称 CCF Web 服务器或连接到框中显示完全合格的域名称 (FQDN),该连接不成功。此外,您会看到类似于下面的系统事件日志中的错误消息:注意CCF Web 服务器是运行 Internet Information Services (IIS) 服务器。
原因
出现此问题是由于相关链接在.NET Framework 3.5 Service Pack 1.详细信息窗口通信框架 (WCF) 的安全性和身份验证更改,请参见.NET 3.5 服务包 1 自述文件 2.3.2 节。若要查看此文件,请访问下面的 Microsoft 网站:
解决方案
若要解决此问题,请执行以下步骤:
-
设置命名的 CCF IIS 服务器在 DNS CNAME 别名。若要执行此操作,请执行以下步骤。备注
-
该名称在代理桌面,在 MMC 中,端点 Url 中使用,在 Web 服务配置文件。
-
您必须是域管理员和 DNS 管理员才能执行这些步骤。
-
在域控制器计算机上运行 DNS,单击开始,指向所有程序,单击管理工具,然后单击DNS。
-
展开域控制器节点。
-
展开正向搜索区域节点。
-
单击 CCF FQDN。
-
右键单击右窗格中。
-
单击新建别名 (CNAME)。
-
在新建资源记录对话框中,键入别名的名称。例如,键入 CCF IIS 服务器的 FQDN CCF IIS 计算机别名的名称。
-
添加所需的主机,然后单击完成。
-
-
在客户端计算机上,将 HTTP URL 和 FQDN 的 CCF IIS 别名的别名 CCF IIS 计算机添加到本地 Intranet 网站列表。
-
更改端点 Url"CCF IIS 中实际的服务器名称或 FQDN"CCF IIS 别名名称或 FQDN 的 CCF IIS 别名中的所有服务器名称。在下面的文件或 Url,必须执行此操作:
-
在客户端上的 Agentdesktop.exe.config 文件。
-
MMC 的 Mmc.exe.config 文件。
-
所有 CCF Web 都服务上的 CCF IIS 服务器的 Web.config 文件。
-
在 Microsoft SQL Server CCFInfrastructure 数据库中的所有端点 Url。
-
-
在命令提示符下运行SetSpn命令来注册服务主体名称 (SPN) 的主机/CCFAlias 信息和帐户在 IIS 中运行 CCF Web 服务应用程序池的 host/CCFAlias.fabrikam.com 信息。例如,使用SetSpn命令来注册"ASPUSER"SPN。注意:您必须以域管理员身份才能执行此步骤登录。若要下载的 Setspn.exe 支持工具,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
对于 Windows Server 2003 的970536 Setspn.exe 支持工具更新下面两个示例演示如何运行SetSpn命令:
setspn –S host/CCFIISAlias MyDomain\MyCCFAppPoolServiceAccount
setspn –S host/CCFIISAlias.mydomain.com MyDomain\MyCCFAppPoolServiceAccount
-
执行下列操作之一来清除客户端上的票证:
-
重新启动客户端计算机。
-
等待过期的客户端计算机上的 Kerberos 票证。
-
使用 Windows 资源工具包中的 Kerbtray.exe 文件。
-
-
测试代理桌面和 MMC。注意:在 MMC 中,确保您在连接到框中键入 CCF IIS 别名,而不是 CCF IIS 服务器的名称。
注意:在 IIS 7.0 中运行的 web 应用程序使用一种称为内核模式身份验证以进行 Windows 身份验证的新功能。此功能允许为简化 SPN 配置和性能增强的身份验证。默认情况下,IIS 7.0 将启用该功能。IIS 7.0 不使用应用程序池的身份进行 Windows 身份验证期间解密的 Kerberos 票证。如果您正在使用 CCF 2009 与 IIS 7.0 或 Windows Server 2008,您必须正在运行 IIS 配置文件应用程序池的凭据将用于授权服务器中设置标志。若要设置此标志,请按照下列步骤操作:
-
在 IIS 7.0 服务器上,以管理员用户身份打开命令提示符。
-
运行以下命令:
Notepad.exe C:\Windows\System32\inetsrv\config\applicationHost.config
-
在 XML 配置中,将更改所有 CCF 服务承载在应用程序池和 DOMAIN\CCFAppPoolSERVICEAccount 用户帐户下运行的身份验证配置。下面是所需的配置更改的一个示例:
<location path="Default Web Site/Microsoft.Ccf.Csr.WebServices.AgentCredentials"> <system.webServer> <directoryBrowse enabled="true" showFlags="Date, Time, Size, Extension" /> <handlers accessPolicy="Read, Execute, Script" /> <security> <authentication> <windowsAuthentication enabled="true" useKernelMode=”true” useAppPoolCredentials=”true”> <providers> <clear /> <add value="Negotiate" /> </providers> </windowsAuthentication> <anonymousAuthentication enabled="true" /> <digestAuthentication enabled="false" /> <basicAuthentication enabled="false" /> </authentication> </security> <defaultDocument enabled="true"> <files> <clear /> <add value="Default.htm" /> <add value="Default.asp" /> <add value="index.htm" /> <add value="index.html" /> <add value="iisstart.htm" /> <add value="default.aspx" /> </files> </defaultDocument> </system.webServer> </location>
-
这篇文章中所述更改 CCF Web 服务的所有配置。通过使用适当的路径属性替换 path 属性为每个位置元素。在 CCF 2009 年 CCF Web 服务如下所示:
-
Microsoft.Ccf.Csr.WebServices.AgentCredentials
-
Microsoft.Ccf.Csr.WebServices.AdminConsole
-
Microsoft.Ccf.Csr.WebServices.ContactCenterAIF
-
Microsoft.Ccf.Csr.WebServices.ContactCenter
-
Microsoft.Ccf.Csr.WebServices.Customer
-
Microsoft.Ccf.WebServices.Gateway
-
Microsoft.Ccf.Samples.DemoWebApplication
-
Microsoft.Ccf.Samples.MultichannelServer
-
Microsoft.Ccf.Samples.MultichannelSite
-
Microsoft.Ccf.Csr.WebServices.ContactCenter.AgentLoginManager
-
Microsoft.Ccf.ConfigurationSystem.Server.ConfigurationService
-
Microsoft.Ccf.ConfigManagementDataService
-
更多信息
重现问题的步骤
-
请确保客户端计算机已安装了以下程序:
-
Windows XP 服务包 3 (SP3)
-
.NET Framework 3.5 SP1
-
CCF 2009 代理桌面或 MMC
-
-
请确保将这一台计算机正在运行 Windows Server 2003 SP2 的 CCF Web 服务器或 Windows Server 2008。请确保该计算机已安装了 SQL server 2005。
-
请确保这一台计算机正在运行 Windows Server 2003 SP2 或 Windows Server 2008 的域控制器。
-
确保所有计算机都配置为 Kerberos 身份验证或 Windows 身份验证。
-
在具有以下配置的客户端计算机上启动代理桌面:
-
.NET Framework 3.5 SP1 安装。
-
安装了 CCF 2009 代理桌面。
-
在代理桌面配置文件 (agentdesktop.exe.config) 的端点 Url 指向实际的 NetBIOS 名称或 CCF IIS 服务器的 FQDN。
-
参考
SetSPN命令的更多信息,请访问下面的 Microsoft 网站:
http://technet.microsoft.com/en-us/library/cc773257.aspx有关 Windows 2003 SP1 支持工具的详细信息,请访问下面的 Microsoft 网站:
http://support.microsoft.com/kb/892777有关 Windows 2003 资源工具包中的 Kerbtray.exe 文件的详细信息,请访问下面的 Microsoft 网站:
http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd