반응형

현재도 Visual Studio 2013을 쓰시는 분이 얼마나 되는 모르겠지만 오랜만에 Visual Studio 2013을 열어 사용하려고 하는데 인증 관련된 부분에 오류가 나면서 다시 인증하라고 화면이 표시됩니다.

로그아웃 후 다시 로그인을 시도하는데 "온라인 서비스를 사용할 수 없습니다." 라는 오류가 나오면서 더 이상 진행이 되지 않습니다.

로그인 오류 화면

이 오류는 Microsoft에서 보안에 취약한 TLS 1.0에 대한 지원을 중단하면서 발생한 문제 입니다. 해결 방법은 두 가지 입니다.

1번째 방법

.Net Framwork에서 TLS1.2를 사용하도록 설정

관리자 권한으로 Powershell을 실행하고 아래 powershell 스크립트를 실행하면 됩니다.

 New-ItemProperty -path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -name 'SchUseStrongCrypto' -value '1' -PropertyType 'DWord' -Force | Out-Null

2번째 방법

TLS 1.0을 활성화

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\

위의 레지스트리 경로로 이동한 다음

1. "TLS 1.0" 키 생성
2. "Client" 키 생성
3. "Enable" (DWORD) 값을 생성한 다음 값을 "1"로 설정

저 같은 경우는 2번째 방법보다는 1번째 방법으로 처리했습니다. MS 지원 중단한 TLS 1.0 프로토콜을 다시 사용하게 하는 것은 보안상 문제가 있습니다.

다시 VisualStudio 2013을 실행하고 로그인을 하면 로그인 페이지가 잘 표시됩니다.

반응형

'개발 > Windows' 카테고리의 다른 글

MFC FeaturePack CDockablePane 상태 관련  (0) 2015.02.04
반응형

Visual Studio 2015에서 부터 프로젝트 및 솔루션 형식 및 플랫폼 집합 도구의 형식이 호환되어 특정 환경에 대해서 편하게 빌드를 할 수 있는 환경으로 변경되었습니다.

 

다만, 유독 Visual Studio 2015/2017/2019에서 WDK 8.0 그러니까 WindowsKernelModeDriver8.0으로 플랫폼 도구 집합으로 컴파일하면 오류가 발생합니다.

 

플랫폼 도구 집합을 "WindowsKernelModeDriver8.0"로 설정 후 빌드하면 다음과 같은 메시지가 출력창에 표시됩니다.

1>------ 모두 다시 빌드 시작: 프로젝트: testdrv, 구성: Win8 Debug x64 ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(347,5): error MSB6004: 지정한 작업 실행 파일의 위치 "C:\Program Files (x86)\Windows Kits\8.0\bin\x86\x64\CL.exe"이(가) 잘못되었습니다.
1>"testdrv.vcxproj" 프로젝트를 빌드했습니다. - 실패
========== 모두 다시 빌드: 성공 0, 실패 1, 생략 0 ==========

분명히 VisualStudio 2019를 설치하기전에 VisualStudio 2012를 설치하고 WDK 8.0을 설치하였음에도 불구하고 "CL.exe"를 찾을 수 없다는 오류 메시지 입니다. 해당 폴더에 가보면 "CL.exe"파일이 존재하지 않습니다.

 

여기 저기 관련 내용을 찾아보았으나 어디에도 나와있지 않습니다. 그러나 결국 Microsoft에서 해당 오류에 대한 해결책을 발견했습니다.

 

내용을 보면 황당하지만 왜 MS에서 이러한 오류를 자동으로 고쳐주지 않았을까 하는 것이 의문입니다.

 

오류 수정 절차는 다음과 같습니다.

  1. C:\Program Files (x86)\Windows Kits\8.0\build 디렉터리로 이동합니다.
  2. WindowsDriver8.0.x64.props 파일을 엽니다.
  3. "'$(VisualStudioVersion)' != '11.0'" 문구를 찾습니다.
  4. "!=" 를 "&lt;"로 변경합니다.( "!=" 를 "<"로 변경) 2군데가 있으니 모두 변경합니다.
  5. 파일을 저장합니다.
  6. WindowsDriver8.0.Win32.props 파일도 동일하게 변경합니다.

이와 같이 props 파일을 변경한다음에 다시 컴파일하면 컴파일이 잘 됩니다.

 

해당 해결책이 있는 URL도 같이 공유합니다.

반응형
반응형

Windows 10 부터 새롭게 등장하는 MS Edge 브라우저로 자신의 IP로 접속을 하려면 '이 페이지에 연결할 수 없음' 페이지가 표시되면서 접속이 실패합니다.

 

예를 들어 보통 자신의 IP가 192.168.100.5 라고 하고 자신의 컴퓨터에 웹서버가 설치되어 있다면 보통 브라우저 주소창에 http://192.168.100.5 라고 입력하면 웹 페이지가 표시됩니다.

 

그러나 엣지 브라우저로는 자신의 IP 및 127.0.0.1로도 접속이 되지 않으며 다음과 같이 페이지가 표시됩니다.

 

 

IE, Chrome, Firefox, Safari 등등 모든 브라우저가 잘 접속이 됩니다만 유독 MS 엣지 브라우저는 접속이 안됩니다. 이 문제는 앱의 네트워크 격리 문제 때문에 발생하는 문제인데 다음과 같은 명령으로 문제를 해결할 수 있습니다.

 

명령창을 관리자 권한으로 실행한다음에 다음 명령을 입력합니다.

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

 

 그런다음, 다시 MS Edge 브라우저로 동일한 주소를 입력하면 웹 페이지가 잘 표시됩니다.

 보안을 위해서 MS Edge 브라우저로 로컬 IP로 접속되는 것을 차단이 되는 것은 좋을 일이지만, 개발자의 입장에서는 마냥 좋은 일만은 아니군요.

 

다시 이 옵션을 해지하려면 아래 명령을 입력하면 됩니다.

CheckNetIsolation LoopbackExempt -d -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

 

관련된 URL은 다음과 같습니다:

반응형

'개발' 카테고리의 다른 글

Internet Explorer  (0) 2014.01.03
VC2005 버전별 재배포 패키지  (1) 2012.04.18
반응형

MS VS 2008부터 MFC Feature Pack을 지원합니다.


Doc-View 형태의 응용프로그램을 만들면 MFC Feature Pack에서 제공하는 OutlookBar 와 Docking Pane를 이용할 수 있습니다. OutlookBar와 Docking Pane의 레이아웃은 자동으로 저장되고 로드 됩니다.

매우 편리한 기능이긴 하지만 또한 매우 불편한 기능입니다. 물론 이 레이아웃 상태에 대해서 커스터마이징을 할 수 있는 여지를 두었군요.

MFC Feature Pack으로 Doc-VIew 응용프로그램을 생성할 시 기본 App 클래스는
CWinApp에서 CWinAppEx로 변경됩니다.
CWinAppEx에서 이 상태 저장 및 복구를 하는 군요.
CWinAppEx의 메소드 중 다음 메소드를 주의해서 보시면 됩니다.

  • CleanState(): 레이아웃 상태를 모두 초기화 한다.
  • LoadState(): 레이아웃 상태를 로드한다.
  • SaveState(): 레이아웃 상태를 저장한다.

위와 같은 메소드가 있지만 CleanState() 정도가 유용하게 쓰일 수 있을 것 같습니다.

 

CWinAppEx를 상속받은 클래스의 InitInstance()에서 SetRegistryKey() 구문 다음에 CleanState()를 호출하면 항상 레이아웃이 초기화한 상태로 표시되게 됩니다. 레이아웃을 로드하는 시점은 ProcessShellCommand()에서 프레임워크상 자동으로 로딩되게 되어 있습니다.

또한 이 레이아웃 자동 저장이 필요없다면 CWinAppEx의 다음 메소드를 오버라이딩 합니다.

virtual void OnClosingMainFrame(CFrameImpl* pFrameImpl);

기본 동작은 SaveState() 메소드를 호출합니다.

 

그러므로 레이아웃 자동저장이 되지 않게 하기 위해서는 OnClosingMainFrame()메소드를 오버라이딩하여 빈 구문으로 놓으면 레이아웃이 자동으로 저장되지 않습니다.

 

반응형

'개발 > Windows' 카테고리의 다른 글

Visual Studio 2013 로그인이 안될 경우 해결 방법  (0) 2022.08.29
반응형

Internet Explorer 8 버전이 나오면서 탭 브라우징을 지원하였습니다.

탭 브라우징은 Frame 윈도우와 Tab 윈도우를 별도의 프로세스로 구현하게 되어 있습니다.

여기서 Tab마다 같은 프로세스가 실행되게 하려면 다음 레지스트리 값을 변경해야 합니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main 키의 TabProcGrowth 값을 DWORD값 1로 설정하면 같은 Tab 윈도우가 같은 프로세스 내에서 동작하게 됩니다.

또한 이 설정은 사용자 레지스트리에 역시 저장됩니다.

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main키의 TabProcGrowth입니다.

IE9 버전이 나오면서 Windows Vista 이상에서 LCIE라는 구현으로 인해 IEFrame과 Tab상의 프로세스 권한이 다르게 설정이 되었습니다.

 

반응형
반응형

VC++ 2005로 개발한 응용프로그램 및 모듈은 컴파일 옵션을 /MD로 주게되면 Side by side로 C Runtime을 물기 때문에 재배포 패키지를 같이 배포해 주어야 한다.

그러나, Side by side 영향 때문에 VC2005 재배포 패키지라고 해도 현재 사용하고 있는 런타임의 재배포 패키지를 설치하지 않으면 실행이 되지 않는다. 때문에 아무리 VC2005 재배포 패키지를 깔아도 여전히 Side by side 때문에 실행이 되지 않고 오류가 발생한다.

개발자는 보통 보안패치를 잘 하는 경우가 대부분이기 때문에, 재배포 패키지를 배포하려면 현재 자신이 배포하는 모듈의 Manifest를 한번 검사하고 최신 재배포 패키지를 배포하는 것이 맞다.

일단 side by side로 만들어진 모듈은 manifest를 확인해보고 배포해야 한다. 특히 정적 라이브러리를 포함한 모듈을 만들경우 항상 한가지 버전의 c runtime dll에 종속성이 생기는 것이 아니다.

VC2005의 경우 재배포 패키지는 버전별로 현재 4개 정도 나와 있는 듯하다.

  • Microsoft Visual C++ 2005 재배포 가능 패키지(2006-04-05):
    (버전: 8.0.50727.163)

Microsoft Visual C++ 2005 재배포 가능 패키지(x86):

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=32BC1BEE-A3F9-4C13-9C99-220B62A191EE

Microsoft Visual C++ 2005 재배포 가능 패키지(x64):

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=90548130-4468-4BBC-9673-D6ACABD5D13B

  • Microsoft Visual C++ 2005 SP1 재배포 가능 패키지(2007-11-15):
    (버전: 8.0.50727.762)

Microsoft Visual C++ 2005 SP1 재배포 가능 패키지(x86)

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=200B2FD9-AE1A-4A14-984D-389C36F85647

Microsoft Visual C++ 2005 SP1 재배포 가능 패키지(x64):

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=EB4EBE2D-33C0-4A47-9DD4-B9A6D7BD44DA

  • Microsoft Visual C++ 2005 서비스 팩 1 재배포 가능 패키지 ATL 보안 업데이트(2010-09-20):
    (버전: 8.0.50727.4053)

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=766A6AF7-EC73-40FF-B072-9112BAB119C2

  • Microsoft Visual C++ 2005 Service Pack 1 재배포 가능 패키지 MFC 보안 업데이트(2011-06-07):
    (버전: 8.0.50727.6195)

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=ae2e1a40-7b45-4fe9-a20f-2ed2923aca62

    URL은 시간이 지나면 예고도 없이 바뀌기 때문에 링크가 제대로 될지는 알수 없으나 현재까지 URL은 위와 같다.

    MS에서 일괄되게 검색이 되면 얼마나 좋을까? 다운로드 사이트에 가서도 재배포 패키지를 받으려면 이곳 저곳 찾아야 되니 참 귀찮다.

    재배포 패키지 제목 좀 통일했으면. 어쩔 때는 SP1, 서비스 팩 1 또는 Service Pack 1 이것 참 번역 할 때 마다 쓰는 단어가 틀려지는 건지 참..

    ATL보안 업데이트와 MFC보안 업데이트 재배포 패키지는 Windows Update를 통해서도 자동 업데이트가 되긴하나 프로그램 설치하면서 Windows Update 먼저 하십시요라고 할 수는 없지 않은가? ㅠㅠ

    반응형

    + Recent posts