보통 WSS 및 ASP.NET 사이트를 구축하려면
반드시 시스템에 IIS와 함께, .NET Framework 2.0 이 설치되어 있어야 한다.
그러나 종종 IIS 가 설치되기 전에, .NET Framework 2.0이 설치를 해서,
IIS 내에 .NET Framework 2.0 기능을 전혀 활성화 시키지 못하는 경우가 있다.
대부분의 경우는 2.0을 다시 설치하거나 기타 2.0에 관련된 Update를 하면 되기는
하지만, 이 또한 비용이 드는데다, 다시 설치하게 되면 기존 설치 기록들이 잘못 적용될 수 있다.

다시 설치하지 않고 해결 하는 방법은 의외로 간단하다.
일단 .NET Framework 2.0이 설치되어 있으면 아래와 같은 경로가 있을 것이다.

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

위의 경로를 들어가면, 여러가지 관리도구들과 핵심 어셈블리들이 있는데,
그 중 aspnet_regiis.exe 를 이용하여 IIS에 관련된 .NET 구성요소를 설치하게 된다.

그래서 아래의 명령을 명령줄에 입력하면 된다.

C:\WINDOWS\Microsoft.NET\Framework\v2.0.
50727\aspnet_regiis.exe -iru

사용자 삽입 이미지


즉 aspnet_regiis.exe 에 -iru 라는 옵션을 넣어 한번 실행해 주면 완료된다.
아래에 이 aspnet_regiis.exe에 대한 옵션들에 대한 설명이다. 참고로 추가한다.

728x90

이 팁은 Visual Studio 2005에 관한 팁입니다.

문제 유형
C#을 이용해 독립적인 클래스를 하나의 DLL로 만들어 GAC에 등록하는 경우가 종종있습니다.특히 서버용 구성요소를 만들다 보면 자주 이런 식으로 구현하게 되는데,이 경우 자동으로 Gac에 등록되게 할 수 있도록 프로젝틔 속성 내에 있는 빌드 이벤트를 이용하곤 합니다.
빌드 이벤트 내에 아래와 같은 형태로 넣을 수 있습니다.


빌드 전 이벤트 명령줄(R)
gacutil.exe /u $(ProjectName)

빌드 후 이벤트 명령줄(O)
gacutil.exe /i $(TargetFileName)


해당 항목에 위의 굵은 줄 부분을 넣게 되면, 자동적으로 빌드 하기 전에 GAC에
등록되어 있는 어셈블리를 해제 했다가, 빌드가 완료된 후 다시 GAC 상에 등록 해주게 됩니다. 일반적으로 간단한 DLL에서는 위와 같이 작업하게되면 큰 문제없이 컴파일 되며
정상적으로 동작합니다.

그러나 팀 작업이나 기타 다른 이가 작성한 프로젝트를 가져와 작업하는 경우
위의 설정에서 오류가 발생할 수 있습니다.
저 같은 경우에는 아래와 같은 오류 메시지가 뜹니다.(XXX.XXXX.XXXXX는 어셈블리
이름입니다.)

오류    1   "gacutil.exe /u XXX.XXXX.XXXXXX"
명령이 9009 코드에서 끝났습니다.

문제 원인 분석
오류에서 나타내고 있는 9009 코드라는 것에 대한 정확한 의미를 찾을 수 없습니다.
일단 각종 포럼에서 제시한 문건들을 보면 Gacutil.exe 뿐만 아니라, 다양한 명령줄
실행 중에 발생한다는 것을 쉽게 발견하실 수 있습니다. 그래서 여기서는 Gacutil.exe
만을 가지고 판단하도록 하겠습니다
제가 gacutil.exe를 버전 별로 실행해본 결과,
위와 같은 오류가 발생되는 원인이 1.1.4X 버전의 .NET Framework 내에
있는 Gacutil.exe가 불려져서 발생되는 경우가 가장 많습니다.(최소한 저와 같은
환경에서는 그렇습니다.) 왜 그런지는 알 수 없지만 VS 2005의 빌드 이벤트 명령줄은
Gacutil.exe를 2.0 용이 아닌 1.0 버전용을 먼저 호출 되고 있다고 판단됩니다.

해결 방법
1. 전체 경로로 바꾸어 처리하기.
이 경우 외국 사이트 등을 방문하여 해당 문건에 대해 처리하는 방법에 대한 각종
질의 답변 글을 보면 다음과 같은 방법으로 해결하라고 적혀 있습니다.

gacutil.exe /u $(ProjectName)
->
"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe"
/u $(ProjectName)

즉 실행하려면 파일에 대한 전체 경로와 파일명을 넣어주고 처리해주면 된다는
것입니다.실제로 저 같은 경우에도 프로젝트의 속성에 들어가 빌드 이벤트 항목의 두 문장을
위와 같이 수정했으며 정상적으로 컴파일 되는 것을 확인했습니다.

2. 검색 경로에 포함시키기.
그러나 프로젝트 파일에 대한 수정권한이 없는 경우가 있습니다. 특히 팀 프로젝트를
하게 되는 경우 이 프로젝트 파일을 수정할 수 없습니다. 수정하지 않고 위의 방법을 적용하는 마땅한 방법이 없습니다.
그러나 %PATH% 경로의 내용에 위의 BIN 폴더의 경로를 넣으면 해결됩니다.
방법은 아래와 같습니다.

- 내 컴퓨터 -> 속성 -> 고급 -> 환경 변수에 들어가 각종 환경
변수 설정 창을 띄웁니다.
- 시스템 변수 쪽에서 Path 라는 항목을 더블 클릭해서 편집 창을 띄웁니다.
- 각종 경로들 중 windows 시스템 폴더들을 가르키는 부분 뒤쪽에 넣습니다.
   (위치는 크게 관계 없지만, 가급적 앞쪽으로 배치하는 것이 좋습니다.
     저 같은 경우 %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
뒤에 놓았습니다. )  

- Visual Studio 2005를 다시 시작합니다.

경로를 변경해 본 결과 큰 문제없이 컴파일이 되며 정상적으로 gacutil.exe가
실행된 것을 확인할 수 있었습니다.

마무리
해결방법이라고 두가지를 제시해 드렸지만, 소 뒷걸음 치다 쥐잡은 것과 같은
결과 입니다. 일단 컴파일 중 오류로 나타낸 코드 9009 의 정체는 아직 찾지 못했읍니다
왜 갑자기 v1.0용 Gacutil.exe를 실행하는 것인지는 모르겠지만,
아마 다른 서버 제품이 설치되어 있어 발생되는 것인지도 모르겠습니다.
(현재 제 개발용 PC내에는 SQL 2005와 SPS 2007이 설치되어 있습니다.)
나중에 더 많은 내용을 알게 되면 추가해서 적어보도록 하겠습니다.

728x90

MOSS 2007을 설치 할 때 Administrators가 아닌 사용자로 등록 설치를 하는 경우
이벤트 로그 상에 문제가 발생한다.

이 이벤트 로그 상에 남은 내용을 분석하면 특정 컴포넌트의 CLSID를 볼 수 있다.
<CODE>
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{61738644-F196-11D0-9953-00C04FD919C1}
to the user NAOKO\spsadmin SID (S-1-5-21-3407409610-886466911-3668891564-1015).  This security permission can be modified using the Component Services administrative tool.
</CODE>
이 컴포넌트를 regedit를 이용해서 찾으면 다음과 같은 위치에서 발견 될 것이다.
이름을 확인해 본 결과 IIS WAMREG admin Service 이다.
이 서비스 내에 작업을 하는 중 spsadmin(이것이 User 권한만을 가진 MOSS 2007 관리자다.)가 이 컴포넌트에 대해 Local Activation 권한이 없어 실행되지 않았다고 한다.

이에 대한 권한 설정은 Component Service를 실행한 뒤 다음 위치에서 찾아보면 찾을 수 있다.
이 컴포넌트의 속성에 들어가서 속성 창에서 보안 부분을 열도록 한다.

Edit 버튼에 들어가서 해당 사용자를 추가 한뒤 Local Lauch와 Local Activation에 대해 권한을 허용해 준다.

728x90

이 문서내의 내용의 오역으로 인한 피해에 대해서는 절대 책임지지 않습니다. 반드시 원문을 보시고, 제가 작성한 문서는 단지 참고만 하시기 바랍니다.

문서 원본 위치
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/html/1595ebb8-65af-4609-b3e7-a21209e64391.asp
The COM Elevation Moniker  
- Windows Vista에서 COM 개체의 접근 권한 상승 시키기.

COM을 이용한 권한 상승 Moniker란, 사용자 계정 권한 제한(Limited User Accout : LUA )하에서 동작 해야 하는 응용 프로그램이 권한 상승을 할 수 있도록, COM 클래스의 활성화 작업을 수행하는 것입니다. LUA에 대한 더 자세한 사항은 Security in Longhorn : Focus on Least Privilege을 보시기 바랍니다.

Elevation Moniker를 사용할 때
Elevation moniker란, 권한이 제한된 상태로 실행 중인 COM 클래스가 시스템 날짜 및 시간을 설정하는 것과 같이,높은 권한을 필요로 하는 경우 해당 권한을 활성화 주는 것을 말합니다.
권한 상승 작업은 COM 클래스 자체 뿐만 아니라, COM 클래스를 사용하는 클라이언트까지, 두가지다 필요합니다. 먼저 COM 클래스는 권한 상승을 하기 위한 설정 작업으로 자신의 레지스트리 항목 중 Requirements 섹션에 별도의 기록을 수행해야 합니다. 그리고, COM 클라이언트는 별두 작업을 수행하기 보다, 권한 상승 Moniker을 이용하여 권한 상승요청을 하면 됩니다.
권한 상승 Moniker 자체는 응용 프로그램 호환성을 고려하여 구성하지 않았습니다. 즉 보안을 중심으로 고려하였기 때문에, 별도의 우회적인 회피방법을 제시하진 않습니다. 그래서 과거의 COM 클래스와 클라이언트 간의 권한 상승 문제로 응용 프로그램 호환성 오류가 발생할 수 있습니다. 예를 들어, WinWord와 같이 권한 상승을 높아야 하는 기존 COM 클래스를 COM 클라이언트에서 실행하려면, COM 클래스 뿐만 아니라, COM 클래스를 이용하는 클라이언트도 권한 상승 Moniker로 활성화 시켜야 합니다.
단, 기존 COM 클래스의 CLSID로 CoCreateInstance를 호출해 COM 클라이언트의 권한을 상승 시켰어도, COM 클라이언트의 권한은 COM 서버 프로세스의 권한을 따라가게 됩니다.  물론, 모든 COM 자체의 기능 수행에 반드시 권한 상승이 필요한 것은 아니지만, 다음과 같은 제한들로 정상적으로 동작하지 않을 것입니다.

  • COM 클라이언트의 권한이 높더라도 원격 COM 서버의 권한까지 높아지는 것은 아닙니다. 클라이언트가 권한 상승 Moniker로 권한 상승을 했다고 하더라도, COM 서버 자체가 자동적으로 권한 상승되진 않습니다.
  • 만일 권한 상승된 COM 클래스가 COM 호출 시 impersonation(가장화)를 사용할 때, impersonation(가장화) 중에 상승된 권한을 잃게 될지 모릅니다.
  • 만일 권한 상승된 COM 서버가 Running Object Table(ROT)상에 클래스를 등록할 때, 권한 상승되지 않은 클라이언트에서는 그 클래스를 활용하지 못합니다.
  • 중간(Medium) 보다 높은 통합 레벨(Integraity Level : IL )로 동작하는 프로세스는 COM 활성화 중에 사용자 별 클래스를 적재 할 수 없습니다. 만일 COM 응용 프로그램이 Administrators 급 계정이던 아니던 간에 사용하게 하려면, HKEY_LOCAL_MACHINE 레지스트리 상에 응용 프로그램의 COM 클래스가 설치되어 있어야 합니다. 만일 Administrators 급 계정에서만 응용 프로그램을 사용하게 된다면 응용 프로그램 COM 클래스는 반드시 HKEY_USERS 쪽에 설치하셔야 합니다.
  • 권한 상승되지 않은 응용 프로그램에서 상승된 응용 프로그램쪽으로 드래그 앤 드랍을 지원하지 않습니다.


728x90

전체 원본 내용 : http://members.shaw.ca/bsanders/WindowsGeneralWeb/RAMVirtualMemoryPageFileEtc.htm

원본 : http://support.microsoft.com/kb/555223

윈도우를 포함한, 최신 운영체제 대부분은 응용 프로그램이나 각종 프로세스를 실행할 때, 실제 메모리 주소 공간과 매핑되어 있는 가상 메모리 주소 공간 상에서 항상 실행되도록 되어 있습니다. 단지 운영체제 핵심 커널만 실제 메모리 주소 공간을 이용하게 됩니다.
가상 메모리를 항상 이용 함으로써 시스템 상에 설치된 물리적인 램 크기를 넘어서는 용량이 필요한 프로세스들도 정상적으로 동작하게 됩니다.

728x90

Windows Server 내에 있는 DHCP 콘솔을 직접 제어해서 설치하는 방법이 있습니다.
그러나 이 방법을 이용하게 되면 최악의 문제는 많은 양의 데이터를 적용하는데
큰 문제가 있다는 점이죠.

그래서 일반적으로 스크립트나 별도 응용 프로그램을 제작해서 일괄 작업을
할 수 있도록 합니다. 그렇다면 스크립트를 이용해 처리할 수 있는 방법은 무엇일까요?
의외로 간단한 방법이 있었습니다.

netsh 라는 네트워크 관련 shell을 이용하는 방법입니다.

IP 예약을 하는 방법은 다음과 같습니다.
netsh dhcp server <서버이름> scope <범위 ID> add reservedip <예약 IP 주소> <MAC 주소> <컴퓨터 이름>
예) netsh dhcp server \\ZTISVR scope 65.25.252.0 add reservedip 65.25.252.223 08002b30369b Test

예약된 IP 주소를 해제하는 방법은 다음과 같습니다.
netsh dhcp server <서버이름> scope <범위 ID> delete reservedip <예약 IP 주소> <MAC 주소> <컴퓨터 이름>
예) netsh dhcp server \\ZTISVR scope 65.25.252.0 delete reservedip 65.25.252.223 08002b30369b

728x90

현재 Windows Vista의 Beta2가 발표되었습니다.

당초 빌드 5381로 진행할 것 같았는데, 결국 몇가지 추가적인 업데이트가 있었나 봅니다.
아직 5384를 다운 받아 설치해보지 못해서 무어라 단정할 수 없지만,
이번 5384에서는 무엇이 바뀌었는지 궁금합니다.

그런데... Connect 사이트가 폭주 중인가 봅니다. 다운이 안되는군요 -_-;;;

728x90
드디어 MS에서 Windows Vista Ready PC 사양을 발표했습니다.
5월 18일자로 발표된 사항인데, 발표된 내용은 다음과 같습니다..
Windows Vista CapableWindows Vista Premium Ready
CPU: 최신 CPU (최소 800 MHz)11 GHz 32-bit (x86) or 64-bit (x64)1
RAM:512 MB                                                                  1 GB
그래픽 카드:     DirectX® 9 호환Windows Aero2 동작
(Windows Display Driver Model (WDDM) 지원 GPU 권장)
그래픽 RAM:   - -                                                    128 MB
HDD:           - -                                                    40 GB
HDD 빈 공간 - -                                                    15 GB
CD/DVD:   - -                                                    DVD-ROM drive3
사운드:           - -                                                    사운드 출력 가능
인터넷:     - -                                                    인터넷 접속 호환

여기서 제시한 항목은 Capable 과 Premium Ready가 있는데, Capable 부분이 최소사양이 될 것이며, Premium Ready가 진짜 그럴듯 하게 이용하기 위한 사양이 될 것 같습니다. 보시면 알겠지만,
현재 우리나라에서 100만원 정도 하는 PC 정도가 되면 충분히 커버 될 것 같습니다.

Capable이 나온 이유는 아마도 이전 PC에서 이전하기 위한 발판 부분을 제시하는 것 같습니다.
과거에 쓰던 PC 및 지금 저가 모델로 나온 제품 중에서 Vista가 돌 수 있는 그런 것들을 제시하는 부분이랄까요? 다분 그런 목적인 것 같습니다. 하지만 진정한 Vista 이용을 위해서라면, 아마도 Premium Ready가 되어야 될 것 같습니다.

사양.... 많이 높아졌습니다. 램도 512로, 게다가 DirectX 9와 호환도 되야 되고..

일단, 세상은 변하는 것이고, 컴퓨터도 그렇게 변하는 것입니다.
얼리어답터나 일반 사용자들의 PC는 많이 좋아지고 있어 큰 문제가 될 것 같지는 않지만,
(물론 아직도 P3 쓰는 분도 계시고, RAM 256으로 잘 쓰고 계신분도 있지만...)
과연.... 기업들이 이 내용을 수용해 줄까요? 궁금하군요. 1000여대의 PC를 Premium Ready는
아니더라도 Capble 까지 수용한다고 해도... 상당한 무리수가 따를 것 같긴 하군요.
728x90

+ Recent posts

728x90