원격 데스크톱 웹 액세스를 사용하여 원격 애플리케이션에 연결할 때 알림 영역에 "연결된" 아이콘이 표시되지 않습니다.

이 문서에서는 원격 데스크톱 웹 액세스를 사용하여 원격 애플리케이션에 연결할 때 알림 영역에 연결된 아이콘이 표시되지 않는 문제에 대한 해결 방법을 제공합니다.

적용 대상: Windows Server 2012 R2
원래 KB 번호: 977507

증상

Windows Server 2008 R2를 실행하는 컴퓨터에서 RD 웹 액세스(원격 데스크톱 웹 액세스)를 사용하여 원격 애플리케이션에 연결하는 경우 연결된 아이콘이 알림 영역에 표시되지 않습니다.

참고

원격 애플리케이션을 처음 실행하면 알림 영역에 연결된 아이콘이 나타납니다.

WebSSO(웹 Single Sign On)가 예상대로 작동하지 않아 Windows Server 2008 R2의 원격 데스크톱 웹 액세스를 통해 게시된 RemoteApps를 통해 시작된 애플리케이션에서 자격 증명에 대한 "이중 프롬프트"가 발생합니다.

원인

이 문제는 클라이언트 컴퓨터에 노출되지 않은 쿠키가 여러 대 있는 경우에 발생합니다.

해결 방법

이 문제를 해결하려면 쿠키를 삭제합니다.

Windows Internet Explorer 8에서 쿠키를 삭제하려면 다음 단계를 수행합니다.

  1. 시작을 클릭하고 제어판 클릭하고 네트워크 및 인터넷 Connections 클릭한 다음 인터넷 옵션을 클릭합니다.
  2. 일반 탭에서 삭제를 클릭합니다.
  3. 쿠키만 삭제하려면 를 클릭하여 쿠키 검사 상자를 선택한 다음 클릭하여 다른 모든 검사 상자를 지웁니다.
  4. 삭제를 클릭합니다. 쿠키를 삭제하는 것 이상의 또 다른 옵션은 RD 웹 액세스 서버의 스크립트 파일 C:\windows\Web\RDWeb\Pages\renderscripts.js 변경하는 것입니다.

스크립트 파일 C:\windows\Web\RDWeb\Pages\renderscripts.js 변경하려면 다음 단계를 수행합니다.

  1. 로컬 관리자 그룹의 구성원으로 원격 데스크톱 웹 액세스 서버에 로그인합니다.

  2. 다음 jscript 파일로 이동하여 마우스 오른쪽 단추를 클릭하고 편집을 선택합니다.

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

  3. 해당 jscript 파일에서 다음 함수의 구현을 찾습니다. 함수 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);
            }
        }
    }
    

문제가 해결되었습니까?

문제가 해결되었는지 확인합니다. 문제가 해결되면 이 섹션을 완료했습니다. 문제가 해결되지 않으면 지원에 문의할 수 있습니다.

추가 정보

이 문제는 다음 조건이 충족될 때 발생할 수 있습니다.

  • 원격 데스크톱 웹 액세스는 부모 도메인이 있는 하위 도메인에 있습니다.
  • 부모 도메인 또는 다른 하위 도메인은 도메인이 부모 도메인 수준으로 설정된 쿠키를 씁니다. 이 동작은 모든 하위 도메인 간에 쿠키를 공유합니다.

원격 데스크톱 웹 액세스가 부모 도메인 수준에 배치되면 연결 아이콘이 알림 영역에 표시됩니다. 또한 SSO(Single Sign-On) 기능, 원격 애플리케이션 및 데스크톱 연결은 원격 애플리케이션에 연결할 때 예상대로 작동합니다.

또한 이는 웹 서버에서 클라이언트에 다시 제공된 쿠키에 포함된 추가 쿠키 정보가 있을 때 발생할 수 있습니다.