Microsoft .NET Framework 3.0

참고 가장 좋은 결과를 얻으려면 .NET Framework 3.0의 시험판 버전을 설치한 적이 없는 컴퓨터에 설치하십시오. 컴퓨터에 시험판 버전이 있으면 올바른 순서대로 제거하여 완전히 제거해야 합니다. 이러한 제거 지침을 따라 시험판을 제거한 후 이 빌드를 설치하십시오. Framework의 시험판 버전이 있는 시스템에 대한 자세한 내용은 이 페이지의 2.8 단원을 참조하십시오.

목차

1. .NET Framework 3.0 설치에 필요한 시스템 요구 사항
2. .NET Framework 3.0: 알려진 설치 문제
3. 다운로드 오류에 대한 문제 해결 단계
4. 알려진 Windows Communication Foundation 문제
5. 알려진 Windows Workflow Foundation 문제
6. 알려진 Windows Presentation Foundation 문제

1. .NET Framework 3.0 설치에 필요한 시스템 요구 사항

프로세서 최소:
  • 400MHz Pentium 프로세서

권장:

  • 1GHz Pentium 프로세서
운영 체제 .NET Framework 3.0은 다음 시스템에 설치할 수 있습니다.
  • Microsoft Windows 2003 Server 서비스 팩 1(SP1)
  • Windows XP SP2
  • Windows Vista *

*Windows Vista에는 .NET Framework 3.0이 포함되어 있으므로 별도의 설치 패키지가 필요하지 않습니다. 독립 실행형 .NET Framework 3.0 패키지는 Vista에서 지원되지 않습니다.

RAM 최소:
  • 96MB

권장:

  • 256MB
하드 디스크 최대 500MB의 여유 공간 필요
CD 또는 DVD 드라이브 필요하지 않음
디스플레이 최소:
  • 800 x 600, 256색

권장:

  • 1024 x 768 하이 컬러, 32비트
마우스 필요하지 않음

설치 드라이브

.NET Framework 3.0 설치 관리자를 시작할 때 기본 설치 위치는 시스템을 부팅하는 데 사용되는 드라이브인 시스템 드라이브입니다. 시스템 드라이브에 사용 가능한 공간이 필요한 만큼(최대 500MB) 있는지 확인하십시오.

2. .NET Framework 3.0: 알려진 설치 문제

2.1 .NET Framework 3.0 다운로드 및 설치 시 다운로드가 실패합니다.

.NET Framework 3.0 다운로드 및 설치가 실패하는 경우가 있습니다.

이 문제를 해결하려면

웹 사이트에서 dotnetfx3setup.exe를 다시 실행하고 다시 다운로드합니다. 다운로드 오류에 대한 자세한 문제 해결 정보를 보려면 여기를 클릭하십시오.

- 또는 -

전체 재배포 가능 패키지 dotnetfx3.exe(x86) 또는 dotnetfx3_x64.exe(x64)를 설치합니다. .NET Framework 3.0 다운로드 위치에서 이러한 재배포 가능 패키지를 찾을 수 있습니다.

2.2 바이러스 백신 응용 프로그램이 임시 폴더를 정리하도록 구성되어 있으면 설치를 완료하기 위해 다시 부팅해야 하는 경우 설치가 실패합니다.

설치를 완료하려면 다시 부팅해야 하는 경우 시작할 때 임시 디렉터리를 정리하도록 바이러스 백신 응용 프로그램이 설정되어 있으면 필요한 설치 파일이 삭제되고 프로그램을 찾을 수 없다는 오류와 함께 설치가 실패합니다.

이 문제를 해결하려면

.NET Framework 3.0 설치 프로그램을 실행하기 전에 시작할 때나 다시 부팅할 때 임시 폴더를 정리하지 않도록 바이러스 백신 응용 프로그램 구성을 변경합니다. 이러한 작업을 수행하는 단계는 해당 바이러스 백신 설명서를 참조하십시오.

2.3 프로그램 추가/제거에서 유지 관리 모드를 시작하면 몇 분 정도 걸릴 수 있으며 설치가 실패한 것처럼 보일 수 있습니다.

유지 관리 모드를 시작할 때 바이러스 검색 소프트웨어와 같은 다른 프로세스가 실행 중이면 이러한 프로세스로 인해 설치 속도가 현저히 느려질 수 있으며 설치가 실패한 것처럼 보일 수 있습니다.

이 문제를 해결하려면

해결 방법은 없습니다. 설치가 실패한 것이 아니므로 설치가 완료될 때까지 기다리십시오.

2.4 프로그램 추가/제거에 Windows Workflow Foundation을 제거할 수 있는 항목이 없습니다.

.NET Framework 3.0을 설치할 때 Windows Workflow Foundation을 제거하라는 내용의 오류가 나타날 수 있지만 Windows Workflow Foundation을 제거할 수 있는 ARP 항목이 없습니다.

이 문제를 해결하려면

http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146에 있는 제거 도구를 실행합니다.

2.5 .NET Framework 3.0을 설치하면 지역화된 버전의 MSXML6을 덮어씁니다.

Windows XP SP2와 Windows 2003 SP1에서 지역화된 버전의 MSXML6을 이전에 설치한 경우 .NET Framework 3.0을 설치하면 지역화된 MXSML6을 영어 버전으로 덮어씁니다.

이 문제를 해결하려면

.NET Framework 3.0을 설치한 후 지역화된 버전의 MSXML6을 다시 설치합니다.

2.6 .NET Framework 3.0 패키지를 Vista에 설치할 때 설치 오류가 발생합니다.

Windows Vista에는 .NET Framework 3.0이 포함되어 있으므로 별도의 설치 패키지가 필요하지 않습니다. 독립 실행형 .NET Framework 3.0 패키지는 Vista에서 지원되지 않습니다.

2.7 .NET Framework 3.0(이전의 WinFX 3.0)의 시험판 버전에서 업그레이드할 때 문제가 발생할 수 있습니다.

이 단원에서는 .NET Framework 3.0의 시험판(CTP 및 베타) 버전을 이전에 설치한 경우 이 버전을 제거하고 RTM 버전으로 업그레이드하려고 할 때 발생할 수 있는 문제에 대해 설명합니다.

제거 도구 실행
http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146에서 .NET Framework 3.0 제거 도구를 다운로드할 수 있습니다. 이 도구로 많은 제거 문제를 해결할 수 있으며 제거/다시 설치 문제를 해결할 때 가장 먼저 이 도구를 사용해 볼 수 있습니다. 도구의 올바른 사용에 대한 자세한 내용은 다운로드 페이지에 나와 있습니다.

도구를 실행할 수 없거나 도구로 문제가 해결되지 않으면 아래의 알려진 문제 및 해결 방법 단원에서 가능한 해결 방법이 있는지 살펴보십시오.

참고: 이러한 설치 문제는 RTM 버전을 설치하기 전에 .NET Framework 3.0의 초기 시험판 버전을 시스템에 설치한 경우에만 발생합니다. 이러한 문제는 최근의 .NET Framework 3.0 시험판 버전에서 해결되었습니다.


알려진 문제 및 해결 방법

2.7.1 제거 시 "Microsoft Digital Identity Service"(idsvc)가 삭제되지 않습니다.

제거할 때 .NET Framework 3.0의 일부 시험판 버전에서 만들어진 서비스가 완전히 삭제되지 않습니다. 이러한 서비스 중 하나가 시스템에 있으면 .NET Framework 3.0의 설치가 차단됩니다. 다음 오류와 함께 설치가 실패합니다.
ERROR_INSTALL_FAILURE 1603 설치를 하는 동안 오류가 발생했습니다.
또한 %temp%\dd_wcf_retCA*.txt 로그 파일 중 하나에 다음과 같은 내용이 표시됩니다.

ServiceModelReg [15:48:08:041]: 설치 중: Microsoft Digital Identity Service(idsvc)
ServiceModelReg [15:48:08:073]: 오류: System.ComponentModel.Win32Exception: 그 이름은 이미 서비스 이름이나 서비스 표시 이름으로서 사용되고 있습니다.

이 문제를 해결하려면

http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146에 있는 제거 도구를 실행합니다.

문제가 지속되면 다음과 같이 하십시오.
명령 프롬프트를 엽니다.

  1. 시작을 클릭합니다.
  2. 모든 프로그램을 클릭합니다.
  3. 보조프로그램을 클릭합니다.
  4. 명령 프롬프트를 클릭합니다.
  5. 명령 프롬프트에서 다음과 같이 입력합니다.
    sc delete "InfoCard Service"
  6. 컴퓨터를 다시 부팅합니다.
  7. .NET Framework 3.0 설치를 다시 시작합니다.

2.7.2 .NET Framework 3.0의 일부 시험판 버전 제거 시 WCF Perf 카운터 레지스트리 키가 완전히 삭제되지 않습니다.

.NET Framework 3.0의 일부 시험판 버전의 경우 제거 시 일부 Perf 카운터 레지스트리 키가 제거되지 않습니다. 이러한 키가 있으면 .NET Framework 3.0의 설치가 차단됩니다. 다음 오류와 함께 설치가 실패합니다.
"ERROR_INSTALL_FAILURE 1603 설치를 하는 동안 오류가 발생했습니다."
제거 후 레지스트리에 다음 키가 여전히 남아 있을 수 있습니다.
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC Bridge 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelOperation 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelService 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMSvcHost 3.0.0.0\Performance

이 문제를 해결하려면

http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146에 있는 제거 도구를 실행합니다.

문제가 지속되면 다음과 같이 하십시오.
1. 다시 부팅합니다. 많은 문제로 인해 성능 카운터가 불안정해질 수 있습니다. 다시 부팅하면 레지스트리를 수동으로 편집하는 방법보다 안전하게 이러한 문제 중 일부를 해결할 수 있습니다.
2. 다시 부팅해서 문제가 해결되지 않는 경우 다음과 같이 하십시오.
a. 다음 레지스트리 키를 확인하여 비어 있거나 "Wbem*" 값을 포함하는 경우 상위 레지스트리 키를 삭제합니다.
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC Bridge 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelOperation 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelService 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMSvcHost 3.0.0.0\Performance
b. 예를 들어,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
키가 비어 있는 경우 다음 레지스트리 키를 삭제해야 합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0"

2.7.3 "2.0.0.0" 버전의 .NET Framework 3.0 어셈블리 블록 설치를 참조하는 부실한 machine.config 항목이 있습니다.

.NET Framework 3.0의 일부 시험판 버전의 경우 제거 시 일부 machine.config 항목이 제거되지 않습니다. machine.config 파일에서 2.0.0.0 버전의 "System.ServiceModel.dll"을 참조하는 항목이 있으면 .NET Framework 3.0의 설치가 차단됩니다. 다음 오류와 함께 설치가 실패합니다.
"ERROR_INSTALL_FAILURE 1603 설치를 하는 동안 오류가 발생했습니다."
또한 다음과 같은 현상이 발생합니다.
1. ServiceModelReg.exe 실행 문제를 나타내는 오류 이벤트가 응용 프로그램 이벤트 로그에 나타납니다.
2. 사용자의 %temp% 디렉터리에 있는 "dd_wcf_retCA*"라는 설치 로그 파일에 ServiceModelReg.exe 실행 문제를 나타내는 항목이 포함됩니다.
3. 이벤트 로그나 설치 로그에는 다음과 유사한 예외가 포함될 수 있습니다(타임스탬프는 달라짐).
ServiceModelReg [16:21:10:656]: 오류: System.IO.FileLoadException: 파일이나 어셈블리 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 표시된 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다(HRESULT의 예외: 0x80131040).

이 문제를 해결하려면

부실한 machine.config 항목을 다음과 같이 수동으로 제거하십시오.
1. 명령 창에서 "notepad %windir%\microsoft.net\framework\v2.0.50727\config\machine.config"를 실행합니다.
2. System.ServiceModel.dll을 참조하는 모든 XML 노드와 자식 노드를 제거합니다.
3. 64비트 컴퓨터에서 실행하는 경우 다음 구성 파일이 있습니다.

"%windir%\Microsoft.NET\Framework64\v2.0.50727\config\machine.config"

이 파일을 편집하여 System.ServiceModel.dll을 참조하는 모든 XML 노드와 자식 노드를 제거합니다.

2.7.4 RC1 이전 버전의 WCF를 이미 설치한 경우 WCF 서비스를 웹 호스팅할 수 없습니다.

IIS가 설치된 상태에서 .NET Framework 3.0의 이전 버전을 설치한 경우 .NET Framework 3.0의 RTM 버전으로 업그레이드하면 .svc 파일을 사용하여 IIS 호스팅되는 WCF 서비스에 액세스하지 못할 수 있습니다. Windows Server 2003을 실행하는 컴퓨터의 브라우저에서 확장명이 .svc인 파일에 액세스하면 "404: Page Not Found" 오류가 반환될 수 있습니다. Windows XP를 실행하는 컴퓨터에서는 .svc 내용이 일반 텍스트로 표시될 수 있습니다.

이러한 현상은 이전 릴리스의 WCF 스크립트 맵 등록 문제 때문에 발생합니다.

이 문제를 해결하려면

이 문제를 해결하는 방법은 세 가지입니다.
1. http://wcf.netfx3.com/files/folders/product_team/entry5648.aspx에서 지원되지 않는 도구 CleanIISScriptMaps.exe를 다운로드한 다음 인수를 사용하지 않고 명령 콘솔에서 실행합니다.
2. IIS를 제거하고 다시 설치하거나 웹 사이트를 다시 만듭니다.
a. IIS를 제거하고 다시 설치하여 IIS 메타베이스를 새로 고칩니다. 그런 다음 WCF 설치 도구를 수동으로 실행하여 WCF 스크립트 맵을 다시 등록합니다.

"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" /r /y
b. Windows 2003 Server를 실행하고 있는 경우 "기본 웹 사이트"를 삭제하고 다시 만들어 문제를 해결할 수도 있습니다.
3. 임시 해결 방법으로 .svc를 수동으로 설치합니다.
a. 다음 명령을 실행하여 .svc 매핑을 수동으로 설치할 수 있습니다. 그러나 이렇게 하면 기존 사이트의 IIS 메타베이스가 새로 고쳐집니다.
"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" /s:W3SVC

2.7.5 IIS 메타베이스 손상으로 .NET Framework 3.0의 설치가 차단됩니다.

IIS가 설치된 상태에서 이전 버전의 .NET Framework 3.0을 설치한 경우 IIS 메타베이스가 손상될 수 있습니다. 이 경우 .NET Framework 3.0의 설치가 차단될 수 있습니다.
다음과 같은 방법으로 이 문제를 확인할 수 있습니다.
1. 다음 오류와 함께 설치가 실패합니다.
"ERROR_INSTALL_FAILURE 1603 설치를 하는 동안 오류가 발생했습니다."
2. WCF 스크립트 맵의 등록 실패를 나타내는 오류 이벤트가 응용 프로그램 이벤트 로그에 나타납니다. 이벤트의 소스는 System.ServiceModel.Install.dll 3.0.0.0입니다.
3. %temp% 디렉터리의 설치 로그에도 WCF 스크립트 맵의 등록 실패를 나타내는 항목이 포함됩니다.
4. 이벤트 로그나 설치 로그에는 다음과 같은 예외 스택 추적이 포함될 수 있습니다.
System.ApplicationException: ServiceModelReg.exe에서 ServiceModel IIS 스크립트 맵의 등록을 방지하는 IIS 메타베이스의 손상 가능성을 발견했습니다. IIS 메타베이스 손상 문제를 해결하거나, ServiceModel WebHost 기능이 필요하지 않으면 IISAdmin 서비스를 비활성화하고 ServiceModel을 등록하십시오.

이 문제를 해결하려면

1. IIS를 제거합니다.
2. IIS를 다시 설치합니다.
3. .NET Framework 3.0 설치 프로그램을 다시 실행합니다.

3. 다운로드 오류에 대한 문제 해결 단계

3.1 BITS(Background Intelligent Transfer Service)가 비활성화되어 있는 경우

이 오류는 BITS 서비스가 비활성화되어 있거나, 존재하지 않거나, 서비스 응용 프로그램에서 삭제되었거나, 다운로드가 진행되는 동안 중지되었거나 또는 BITS가 종속된 서비스에 오류가 발생했거나 삭제된 경우 발생합니다. 이 문제에 대한 오류 메시지는 "설치를 시작하기 전에 BITS 서비스가 활성화되어 있어야 합니다. BITS 서비스를 활성화한 다음 설치 프로그램을 다시 실행하십시오."입니다.

이 문제를 해결하려면

  1. 시작 메뉴에서 실행을 클릭합니다.
  2. 실행 대화 상자에 services.msc를 입력한 다음 확인을 클릭합니다.
  3. 서비스 목록에서 Background Intelligent Transfer Service를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다.
    참고: 서비스 목록에 Background Intelligent Transfer Service가 없으면 컴퓨터에 해당 서비스가 설치되어 있지 않은 것입니다. http://www.microsoft.com/downloads/details.aspx?FamilyId=B93356B1-BA43-480F-983D-EB19368F9047&displaylang=en에서 BITS를 다운로드하여 설치할 수 있습니다.
  4. 시작 유형 목록에서 수동을 선택한 다음 확인을 클릭합니다.

이와 같은 단계를 수행해도 문제가 해결되지 않으면 BITS가 종속된 서비스를 활성화해야 합니다.

BITS가 종속된 서비스를 활성화하려면

  1. 위에 나열된 1-3 단계를 수행합니다.
  2. Background Intelligent Transfer Service 속성 대화 상자에서종속성 탭을 클릭합니다.
  3. 이 서비스는 다음 시스템 구성 요소에 종속적입니다. 아래에 나열된 각 서비스에 대해 위의 3-4단계를 수행하여 해당 서비스를 활성화합니다.

3.2 구성 오류

이러한 오류는 BITS 인터페이스가 등록되어 있지 않거나 레지스트리 설정이 손상된 경우 발생합니다.

이 문제를 해결하려면

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=B93356B1-BA43-480F-983D-EB19368F9047에서 BITS 2.0으로 업그레이드합니다.

- 또는 -

명령 프롬프트에서 다음과 같이 bitsadmin 도구를 실행하여 BITS 서비스를 복구합니다.
Bitsadmin /util /repairservice /force

http://www.microsoft.com/downloads/details.aspx?amp;displaylang=en&familyid=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en에서 Bitsadmin 도구를 다운로드할 수 있습니다.

3.3 네트워크 오류

이러한 오류는 다음과 같은 이유로 발생할 수 있습니다.

이 문제를 해결하려면

프록시 서버에 올바른 설정을 지정하고 사용하는 컴퓨터가 프록시 서버를 올바르게 인식하는지 확인합니다.

- 또는 -

BITS 2.0으로 업그레이드합니다.
http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=49AE8576-9BB9-4126-9761-BA8011FABF38에서 BITS 2.0을 다운로드할 수 있습니다.

참고 이러한 오류가 발생하면 설치 프로그램을 끝내고 네트워크에 연결되어 있는지 확인한 다음 설치 프로그램을 다시 시작하십시오.

3.4 디스크 오류

이러한 오류는 BITS 서비스에서 파일을 만들지 못하거나 파일에 쓰지 못하는 경우 발생합니다. chkdsk.exe와 같이 디스크를 잠가 BITS가 파일에 쓰지 못하도록 하는 프로그램이 실행 중일 수 있습니다.

이 문제를 해결하려면

디스크를 잠글 수 있는 chkdsk.exe와 같은 프로그램이 실행되지 않는지 확인하고 다운로드를 다시 시도합니다.

- 또는 -

컴퓨터를 다시 시작한 다음 설치 프로그램을 다시 시작합니다. 이때 인터넷에 연결되어 있어야 합니다.

3.5 프록시 오류

다음과 같은 프록시 관련 오류로 인해 BITS 서비스가 실패합니다.

이 문제를 해결하려면

프록시 서버 인증을 위한 올바른 자격 증명을 제공하고 설치 프로그램을 다시 시작합니다.

- 또는 -

HTTP 1.1을 지원하도록 프록시 서버를 업그레이드하고 프록시 서버가 NTLM과 같은 암시적 자격 증명을 지원하도록 합니다. 필요한 경우 네트워크 관리자에게 문의하십시오.

- 또는 -

Internet Explorer 프록시 설정을 변경하여 프록시를 사용하지 않도록 합니다.

프록시 서버를 사용하지 않도록 변경하려면

  1. Internet Explorer에서 도구를 클릭한 다음 인터넷 옵션을 클릭합니다.
  2. 연결 탭을 클릭한 다음 LAN 설정을 클릭합니다.
  3. 프록시 서버에서 사용자 LAN에 프록시 서버 사용(이 설정은 전화 연결이나 VPN 연결에는 적용되지 않음)의 선택을 취소한 다음 확인을 클릭합니다.
  4. 다시 확인을 클릭합니다.

프록시 서버 설정에 대해 추가 지원이 필요한 경우에는 네트워크 관리자에게 문의하십시오.

3.6 기타 오류

BITS 서비스는 다음과 같은 경우 실행되지 않습니다.

이 문제를 해결하려면

해결 방법은 없습니다. 이러한 시나리오는 지원되지 않습니다.

4. 알려진 WCF(Windows Communication Foundation) 문제

4.1 WS-AtomicTransaction 및 COM+ 통합 기능을 사용하려면 Windows XP 및 Windows Server 2003에 Windows 핫픽스가 필요합니다.
WCF WS-AtomicTransaction 지원 및 COM+ 통합 기능이 Windows XP와 Windows Server 2003에서 작동하려면 Windows 핫픽스(QFE)가 필요합니다. http://go.microsoft.com/fwlink/?linkid=46976에서 핫픽스 패키지를 설치할 수 있습니다.

4.2 SvcUtil.exe 도구를 사용하여 생성된 Managed C++ 코드가 컴파일되지 않을 수 있습니다.
SvcUtil.exe 도구를 사용하여 메타데이터에서 데이터 형식과 웹 서비스 프록시에 대한 코드를 생성할 수 있습니다. 그러나 컴파일되지 않을 수 있는 Managed C++ 코드를 이 도구에서 생성하도록 하는 알려진 C++ 코드 공급자 문제가 Visual Studio 2005와 .NET Framework 2.0 SDK에 있습니다. 이러한 C++ 코드 공급자 문제는 이후 Visual Studio 2005 릴리스에서 해결될 예정입니다.

4.3 SvcUtil.exe의 코드 생성 언어 지원
SvcUtil.exe를 사용하면 관리 코드 공급자가 있는 어떠한 언어로도 메타데이터에서 데이터 형식과 웹 서비스 프록시에 대한 코드를 생성할 수 있습니다. SvcUtil은 C#, VB 및 C++ 관리 코드 공급자에서 테스트되었습니다. 테스트되지 않은 다른 코드 공급자는 컴파일되지 않거나 사용할 수 없는 코드를 생성할 수 있습니다.

4.4 QueueTransferProtocol이 "Srmp" 또는 "SecureSrmp"로 설정되어 있으면 큐에 대기 중인 웹 호스팅된 서비스에 메시지를 보낼 수 없습니다.
웹 호스팅된 서비스에 사용되는 큐의 이름에는 적절한 WCF 서비스에 매핑하기 위해 ".SVC"가 포함되어 있습니다. MSMQ HTTP를 설치하기 전에 WCF 활성화 기능을 설치하는 경우 MSMQ HTTP 설치 문제로 인해 .SVC 처리기 매핑이 MSMQ vdir로 복사됩니다. 따라서 이러한 큐에는 SRMP 메시지를 보낼 수 없습니다.

이 문제를 해결하는 방법은 두 가지입니다.

1. WCF 활성화 기능을 설치하기 전에 MSMQ HTTP 지원 기능을 설치합니다.

또는

1. IIS 관리 콘솔을 사용하여 MSMQ vdir에서 .SVC 처리기 매핑을 삭제합니다.
2. 다음을 사용하여 사이트의 .SVC 매핑을 업데이트합니다.
"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\SMConfigInstaller.exe" /c:install /f:http

참고: 64비트 컴퓨터에서는 Framework64 경로를 사용하십시오.


4.5 큐에 대기 중인 채널에서 완전한 종단 간 추적을 생성하지 않습니다.
큐에 대기 중인 WCF 및 MSMQ 채널 간의 메시지 추적에 대한 종단 간 지원 기능이 현재 없습니다. 이것은 알려진 문제입니다.

이 문제를 해결하려면 MSMQ 메시지 ID를 사용하여 WCF와 MSMQ에서 추적되는 메시지의 상호 관계를 수동으로 파악해야 합니다. 이 ID는 WCF와 MSMQ에서 모두 추적됩니다.

4.6 NetMsmqBinding 및 MsmqIntegrationBinding과 함께 WMI를 사용하는 경우의 알려진 문제
WMI를 사용하여 MsmqTransportBindingElement와 MsmqIntegrationBindingElement의 속성을 검사할 때 ReceiveErrorHandling 및 QueueTransferProtocol의 열거형 값이 실제 값 대신 숫자로 나타납니다. 이것은 알려진 문제입니다. 이 문제를 해결하려면 바인딩에 설정된 실제 값에 대한 구성을 검사해야 합니다.

WMI를 사용하여 MsmqTransportBindingElement를 검사하는 경우 MsmqTransportSecurity 및 TransactedReceiveEnabled 속성이 없습니다. 이것은 알려진 문제입니다.

WMI를 사용하여 MsmqIntegrationTransportBindingElement를 검사하는 경우 MsmqTransportSecurity, TargetSerializationTypes 및 TransactedReceiveEnabled 속성이 없습니다. 이것은 알려진 문제입니다.

4.7 Windows Vista에서 메시지 삭제 오류가 메시지 거부로 기록됩니다.
MSMQ v4(Windows Vista)에서 대기 중인 WCF 채널을 통해 NetMsmqBinding이나 MsmqIntegrationBinding을 사용하는 경우 삭제된 메시지 추적이 거부된 메시지로 잘못 기록됩니다. 이것은 알려진 문제입니다.

4.8 클라이언트 인증에 아랍어 인증서를 사용하면 Windows 이벤트 뷰어에 클라이언트 ID가 잘못 표시됩니다.
아랍어 Windows 클라이언트에서 클라이언트 인증에 로컬 컴퓨터 인증서 [CN=4B4DG4]를 사용하면 Windows 이벤트 뷰어와 관련된 알려진 문제로 인해 클라이언트 ID가 이벤트 로그 감사 항목에 잘못 나타납니다.

ClientIdentity: CN=4B4DG4; 14FDBABD77EA825C391CEC4F830859F72B56009F

위의 예에서 문자열 "14"는 인증서 지문의 일부이지만 인증서 주체 이름 앞에 나타납니다.

4.9 IIS 메타베이스 손상으로 인해 .NET Framework 3.0의 설치가 차단될 수 있습니다.
IIS가 설치된 상태에서 이전 버전의 .NET Framework 3.0을 설치한 경우 IIS 메타베이스 손상으로 인해 .NET Framework 3.0의 설치가 차단될 수 있습니다. 다음과 같은 방법으로 이 문제를 확인할 수 있습니다.
1. 다음 오류와 함께 설치가 실패합니다.
"ERROR_INSTALL_FAILURE 1603 설치를 하는 동안 오류가 발생했습니다."
2. WCF 스크립트 맵의 등록 실패를 나타내는 오류 이벤트가 응용 프로그램 이벤트 로그에 나타납니다. 이벤트의 소스는 System.ServiceModel.Install.dll 3.0.0.0입니다.
3. %temp% 디렉터리의 설치 로그에도 WCF 스크립트 맵의 등록 실패를 나타내는 항목이 포함됩니다.
4. 이벤트 로그나 설치 로그에는 다음과 같은 오류 메시지가 포함될 수 있습니다.
System.ApplicationException: ServiceModelReg.exe에서 ServiceModel IIS 스크립트 맵의 등록을 방지하는 IIS 메타베이스의 손상 가능성을 발견했습니다. IIS 메타베이스 손상 문제를 해결하거나, ServiceModel WebHost 기능이 필요하지 않으면 IISAdmin 서비스를 비활성화하고 ServiceModel을 등록하십시오.
이 문제를 해결하려면
1. IIS를 제거합니다.
2. IIS를 다시 설치합니다.
3. .NET Framework 3.0 설치 프로그램을 다시 실행합니다.

4.10 TCP 서비스와 TCP MEX를 같은 포트에서 실행하는 경우의 예외
포트 공유가 활성화된 경우 같은 포트를 사용하도록 TCP 서비스 및 TCP MEX 끝점을 구성하면 서비스를 시작할 때 AddressAlreadyInUse 예외가 발생합니다.

이 문제를 해결하는 방법은 두 가지입니다.
1. 다른 포트를 사용하도록 TCP 서비스 및 TCP MEX 끝점의 구성을 변경합니다.
2. TCP MEX 끝점의 TcpTransportBindingElement에 대한 포트 공유를 활성화합니다. 다음 코드에서는 이 과정을 보여 줍니다.
ServiceMetadataBehavior mexBehavior = new ServiceMetadataBehavior();
host.Description.Behaviors.Add(mexBehavior);
Binding mexBinding = MetadataExchangeBindings.CreateMexTcpBinding();
CustomBinding mexBinding2 = new CustomBinding(mexBinding);
mexBinding2.Elements.Find<TcpTransportBindingElement>().PortSharingEnabled = true;
host.AddServiceEndpoint(typeof(IMetadataExchange), mexBinding2, mexAddress);

4.11 64KB보다 큰 오류 메시지로 인해 ProtocolException이 발생할 수 있습니다.
MaxBufferSize가 최소한 Int.MaxValue - 1024바이트(2147482623바이트)인 경우 64KB보다 큰 오류 메시지를 보내면 클라이언트가 FaultException 대신 ProtocolException을 받습니다. 버퍼링된 전송의 경우 MaxBufferSize는 MaxReceivedMessageSize와 동일합니다. 이것은 HTTP(S) 전송을 사용하는 서비스에만 영향을 미칩니다.

이 문제를 해결하려면 MaxBufferSize(MaxReceivedMessageSize)를 Int.MaxValue - 1025바이트(2147482622바이트) 이하로 설정해야 합니다. 또는 HttpWebRequest.DefaultMaximumErrorResponseLength를 원하는 한도로 직접 설정할 수 있습니다. DefaultMaximumErrorResponseLength 설정은 동일한 응용 프로그램 도메인에 있는 모든 채널에 영향을 미칩니다.

4.12 EncryptBeforeSign 및 XmlSerializerFormatAttribute를 동일한 계약에서 사용할 수 없습니다.
EncryptBeforeSign 보호 명령을 사용한 메시지 보안은 XmlSerializerFormatAttribute가 해당 계약에 사용되는 경우 적절하게 작동하지 않습니다. 둘 다 사용되는 경우 WCF에서는 해독 후 잘못된 본문 내용으로 메시지를 만듭니다. 추가 <?xml ..> 처리 명령이 첫 번째 본문 요소 앞에 생성됩니다.

이 문제를 방지하려면 동일한 계약에서 XmlSerializerFormatAttribute와 함께 EncryptBeforeSign을 사용하지 않아야 합니다.

4.13 여러 버전의 WS-Addressing을 사용하여 WS-ReliableMessaging 채널을 호스팅할 수 없습니다.
AppDomain에서 여러 버전의 WS-Addressing을 사용하는 WS-ReliableMessaging 채널을 호스팅할 수 없습니다. 이러한 시나리오에서는 프로토콜 메시지가 다른 버전의 WS-Addressing 프로토콜을 사용하도록 구성된 채널에서 전송된 경우에도 첫 번째 활성 채널이 이후의 모든 프로토콜 메시지에 대한 WS-Addressing Action 헤더의 버전을 지정합니다.

여러 WS-Addressing 버전을 사용하는 WS-ReliableMessaging 채널을 만들기 위해 하나의 응용 프로그램 또는 서비스가 필요하면 각각에 별도의 AppDomain을 사용해야 합니다. WCF 서비스가 웹 호스팅되는 경우에는 WS-Addressing 1.0 끝점을 사용하는 서비스를 호스팅하는 가상 디렉터리와 WS-Addressing 2004/08 끝점을 사용하는 서비스를 호스팅하는 가상 디렉터리를 하나씩 사용해야 합니다.

5. 알려진 Windows Workflow Foundation 문제

5.1 IIS 7.0 통합 모드에서 호스팅되는 워크플로 웹 서비스

워크플로 프로젝트 시스템에서 생성된 web.config 파일은 IIS 6.0 호스팅과 호환됩니다. 그러나 Windows Vista와 함께 제공되는 IIS 7.0에서는 ISAPI 모드(IIS 6.0 호환 모드)와 통합 모드에서 ASP.NET 파이프라인의 실행을 지원합니다. 새로운 통합 모드 기능을 이용하려면 다음과 같이 web.config 파일을 수정해야 합니다.
<system.webServer>
    <modules>
        <add name="WorkflowHost" type="System.Workflow.Runtime.Hosting.WorkflowWebHostingModule, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="runtimeVersionv2.0" />
    </modules>
</system.webServer>

5.2 ExternalDataExchangeService를 여러 워크플로 런타임 인스턴스에서 사용하면 안 됩니다.

ExternalDataExchangeService 서비스를 여러 WorkflowRuntime 인스턴스에 추가할 수 없습니다. WorkflowRuntime 인스턴스를 새로 만들 때마다 새로운 ExternalDataExchangeService 서비스를 만들고 모든 로컬 통신 서비스를 ExternalDataExchangeService 서비스에 다시 추가해야 합니다.

5.3 이벤트 처리기로 추가된 정적 메서드가 올바르게 serialize되지 않습니다.

정적 메서드를 이벤트 처리기로 추가하면 정적 메서드가 ClassName.Method의 this.Method로 serialize됩니다.

5.4 CompensateActivity의 TargetActivityName이 사용자 지정 합성 작업인 경우 보상이 실패합니다.

Icompensatable을 구현하는 하위 작업을 포함하고, 합성 작업을 보상하지만 하위 작업은 명시적으로 보상하지 않는 CompensateActivity 작업을 포함하는 사용자 지정 합성 작업을 만드는 경우 사용자 지정 작업이 워크플로에 배치되면 예외와 함께 보상이 실패합니다.

이 문제를 방지하려면 사용자 지정 작업의 모든 하위 작업을 CompensatableSequenceActivity 작업에 캡슐화하고 이 CompensatableSequenceActivity 작업에서 보상을 구현해야 합니다.

6. 알려진 Windows Presentation Foundation 문제

6.1 여러 프로젝트와 프로젝트 종속성이 있는 솔루션에 대한 Windows Presentation Foundation 빌드 시스템의 알려진 문제

솔루션에 여러 프로젝트가 있으면 프로젝트 디렉터리가 서로 동등해야 합니다. 한 프로젝트의 루트가 다른 프로젝트의 디렉터리 아래에 있도록 프로젝트 구조를 변경하면 다시 빌드하는 동안 종속된 프로젝트 중 하나의 참조된 DLL에서 형식을 찾을 수 없다는 예기치 않은 태그 컴파일 오류가 나타날 수 있습니다.

해결 방법은 다음과 같습니다.

  1. 솔루션의 프로젝트에 대한 디렉터리 계층 구조를 변경하여 개별 프로젝트 디렉터리를 서로 동등하게 만듭니다. - 또는 -
  2. 이 문제가 발생하면 정리한 다음 빌드하거나 다시 빌드합니다.