你目前正处于脱机状态,正在等待 Internet 重新连接

在运行 Windows Server 2008 R2 的计算机上使用远程桌面 Web 访问连接到远程应用程序时,通知区域不显示“已连接”图标

症状
在运行 Windows Server 2008 R2 的计算机上使用远程桌面 Web 访问(RD Web 访问)连接到远程应用程序时,通知区域不显示“已连接”图标。

注意 首次运行远程应用程序时,通知区域不显示“已连接”图标。

WebSSO(Web 单一登录)不按预期效果运行,导致“两次提示”需要 Windows Server 2008 R2 中远程桌面 Web 访问发布的“RemoteApps”启动的应用程序中的凭证。
原因
当客户端计算机上存在多个未过期的 cookies 时,会出现此问题。
替代方法
若要解决此问题,请删除 cookies。

若需要我们帮助您解决此问题,请转到“帮我修复此问题”部分。如果您希望自己修复此问题,请转到“我自己修复此问题”部分。

帮我修复此问题



若要自动修复此问题,请单击“Fix it”按钮或链接。在“文件下载”对话框中,单击“运行”,然后按照“修复此问题”向导中的步骤操作。




注意
  • 此向导可能只提供英文版本。但是,自动修复功能同样适用于其他语言版本的 Windows。
  • 如果并非本机存在问题,请将 Fix it 解决方案保存在闪存驱动器或 CD 中,然后在出现问题的计算机上运行该解决方案。

然后转到“问题是否已修复?”部分。



我自己修复此问题

若要删除 Windows Internet Explorer 8 中的 cookies,请执行以下步骤:
  1. 依次单击“开始”、“控制面板”、“网络和 Internet 连接”和“Internet 选项”
  2. 在“常规”选项卡上,单击“删除”
  3. 若只要删除 cookies,请单击选择“Cookies”复选框,然后单击以清除其他所有复选框。
  4. 单击“删除”

除了删除 cookies 之外,还可以更改 RD Web 访问服务器上的脚本文件 C:\windows\Web\RDWeb\Pages\renderscripts.js

若要更改脚本文件 C:\windows\Web\RDWeb\Pages\renderscripts.js,请执行以下步骤:

1. 以本地管理员组成员的身份登录到“远程桌面 Web 访问服务器”
2. 找到以下脚本文件,右键单击并选择“编辑”

C:\windows\Web\RDWeb\Pages\renderscripts.js

3. 在该脚本文件中找到以下函数的实现。
function getCookieContents(strNameOfCookie)

4. 修改 jscript 文件中的代码以匹配:


Renderscripts.js 文件中的现有代码:

------------------------------------------
function getCookieContents(strNameOfCookie)
{
var objCookie;
var objCookieName;
var objCookieContents = null;

if ( strNameOfCookie != null &&
strNameOfCookie != "" &&
document.cookie.length > 0 )
{
var objCookies = document.cookie.split(";");
for (var iIndex = 0; iIndex < objCookies.length; iIndex++)
{
objCookie = objCookies[iIndex];
objCookieName = objCookie.substring(0, strNameOfCookie.length);



更改 Renderscripts.js 文件中的上述部分以匹配:

---------------------------------------------------------------------------------------
// Add a function called trim as a method of the prototype
// object of the String constructor.
String.prototype.trim = function()
{
// Use a regular expression to replace leading and trailing
// spaces with the empty string
return this.replace(/(^\s*)|(\s*$)/g, "");
}
// End of the new-added function

function getCookieContents(strNameOfCookie)
{
var objCookie;
var objCookieName;
var objCookieContents = null;

if ( strNameOfCookie != null &&
strNameOfCookie != "" &&
document.cookie.length > 0 )
{
var objCookies = document.cookie.split(";");
for (var iIndex = 0; iIndex < objCookies.length; iIndex++)
{
objCookie = objCookies[iIndex];
objCookie = objCookie.trim(); //Calling the new-added function
objCookieName = objCookie.substring(0, strNameOfCookie.length);

问题是否已修复?

  • 检查问题是否已修复。如果问题已修复,您不用再往下看了。如果问题没有修复,您可以联系技术支持部门
  • 如果您能提供反馈我们将不胜感激。若要提供反馈意见或报告使用此解决方案出现的任何问题,请在“帮我修复此问题”博客中留言或向我们发送电子邮件
更多信息
满足以下条件时可能会发生此问题:
  • 远程桌面 Web 访问存在的子域拥有父域。
  • 父域或其他任何子域写下的 cookie 将域设置为父域级别。这种行为共享所有子域之间的 cookie。
如果远程桌面 Web 访问置于父域级别,则通知区域会显示连接图标。此外,连接到远程应用程序时,单一登录 (SSO) 功能、远程应用程序和桌面连接按预期运行。


此外,当 Web 服务器提供回客户端的 cookie 中包含其他 cookie 信息时,也会发生此问题。



fixit fix it fixme
注意:本篇“快速发布”文章是从 Microsoft 支持组织直接创建的。 文中包含的信息按原样提供,用于响应紧急问题。 由于发布仓促,材料可能包含印刷错误,并且可能随时修订,恕不另行通知。 有关其他注意事项,请参阅使用条款
属性

文章 ID:977507 - 上次审阅时间:10/21/2011 18:04:00 - 修订版本: 1.0

Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Standard

  • kbtshoot kbexpertisebeginner kbsurveynew kbprb kbfixme kbmsifixme KB977507
反馈