在執行 Windows Server 2008 R2 的電腦上,使用遠端桌面 Web 存取連線到遠端應用程式時,「已連線」圖示未出現在通知區域。

文章翻譯 文章翻譯
文章編號: 977507 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

徵狀

在執行 Windows Server 2008 R2 的電腦上,使用遠端桌面 Web 存取 (RD Web Access) 連線到遠端應用程式時,[已連線] 圖示未出現在通知區域。

注意第一次執行遠端應用程式時,[已連線] 圖示會出現在通知區域。

WebSSO (網頁單一登入) 未正常運作,而導致透過 RemoteApps (由 Windows Server 2008 R2 中的遠端桌面 Web 存取所發佈) 啟動的應用程式憑證產生「雙重提示」。

發生的原因

如果用戶端電腦上有多個未過期的 Cookie,就會發生此問題。

其他可行方案

如果要解決這個問題,請刪除 Cookie。

如果要我們為您解決此問題,請前往<為我修正此問題>一節。如果您要自行修正此問題,請前往<讓我自行修正此問題>一節。

為我修正此問題



如果要自動修正此問題,請按一下 [Fix it] 按鈕或連結。按一下 [檔案下載] 對話方塊中的 [執行],然後依照 Fix it 精靈中的步驟執行。


修正此問題
Microsoft Fix it 50631


注意
  • 此精靈可能只提供英文版本。不過,自動修正程式也適用於 Windows 的其他語言版本。
  • 如果您不在發生問題的電腦上,則可將 Fix it 解決方案儲存至快閃磁碟機或 CD,然後在發生問題的電腦上執行。

然後請前往<這樣是否已修正問題?>一節。



讓我自行修正此問題

如果要刪除 Windows Internet Explorer 8 中的 Cookie,請依照下列步驟執行:
  1. 依序按一下 [開始][控制台][網路和網際網路連線],然後再按一下 [網際網路選項]
  2. [一般] 索引標籤上,按一下 [刪除]
  3. 如果只想刪除 Cookie,請按一下選取 [Cookie] 核取方塊,然後再按一下以清除所有其他核取方塊。
  4. 按一下 [刪除]

除了刪除 Cookie 外,您也可以選擇變更 RD Web 存取伺服器上的指令檔:C:\windows\Web\RDWeb\Pages\renderscripts.js

如果要變更指令檔 C:\windows\Web\RDWeb\Pages\renderscripts.js,請依照下列步驟執行:

1. 以本機系統管理員群組成員身分登入遠端桌面 Web 存取伺服器
2. 瀏覽至下列 jscript 檔案,按一下滑鼠右鍵並選取 [編輯]

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

3. 在該 jscript 檔案中尋找下列函式的實作。
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 檔案中的上述區段,使其符合下列內容:

---------------------------------------------------------------------------------------
// 新增 trim 函式作為原型方法
// 字串建構函式的物件。
String.prototype.trim = function()
{
// 使用規則運算式來取代前置和尾端
// 具有空字串的空格
return this.replace(/(^\s*)|(\s*$)/g, "");
}
// 新增函式結束

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(); //呼叫新增函式
objCookieName = objCookie.substring(0, strNameOfCookie.length);

這樣是否已修正問題?

  • 檢查該問題是否已修正。如果問題已修正,您便已完成本節。如果問題尚未修正,則可連絡技術支援服務
  • 我們非常感謝您提供意見反應。如果要提供意見反應,或報告此解決方案的任何問題,請在「為我修正此問題」 部落格中留下您的意見,或者傳送電子郵件給我們。

其他相關資訊

當下列情況皆成立時,就可能會發生這個問題:
  • 遠端桌面 Web 存取位於具有父系網域的子網域。
  • 父系網域或其他任何子網域會寫入將其網域設為父系網域層級的 Cookie。此行為會共用所有子網域的 Cookie。
如果將遠端桌面 Web 存取置放於父系網域層級,連線圖示就會出現在通知區域。此外,當您連線到遠端應用程式時,單一登入 (SSO) 功能、遠端應用程式和桌面連線就會如預期般運作。


網頁伺服器將內含其他 Cookie 資訊的 Cookie 傳送回用戶端時,您就會看見上述功能正常運作。



注意 :本文屬於「快速發佈」文章,係由 Microsoft 技術支援或組織內部直接建立。 本文所包含的資訊是為了回應新問題而依現況提供。 因此為了迅速對外發佈,文章內容可能含有印刷錯誤,而且可能會在不另行通知的情況下進行修改。 如需其他考量事項,請參閱使用規定

屬性

文章編號: 977507 - 上次校閱: 2011年10月21日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Standard
關鍵字:?
kbtshoot kbexpertisebeginner kbsurveynew kbprb kbfixme kbmsifixme KB977507
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com