Exchange Web Services
2009. 12. 18.
안혁
http://hyok.kr



Exchange Managed API 1.0이 정식 버전을 공개했습니다. 다운로드는 아래 경로를 통하여 가능합니다.

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=c3342fb3-fbcc-4127-becf-872c746840e1#tm


사용에 대한 이야기는 이미 RC 버전에 대한 글에서 언급하였으니 해당 글을 참고하세요.

http://hyok.kr/blog/dev/80



 

Posted by 안혁 windfruit

댓글을 달아 주세요

Powershell 2.0
Exchange Server 2007
IIS 7
2009. 11. 30.
안혁
http://hyok.kr



Powershell 2.0에 있는 Powershell ISE에서는 기본적인 명령어만 사용이 가능합니다. Powershell이 설치된 컴퓨터에 Exchange Server 2007이나 IIS 7이 설치되어 있다면 Powershell ISE에서도 이 명령을 사용할 수 있는 방법이 있습니다.

Windows Vista, Windows Server 2008에서는 IIS 7 관련 Powershell 명령을 사용하려면 추가로 Snap-In을 설치하여야 합니다.
http://www.iis.net/extensions/PowerShell

Powershell ISE를 실행 후 하단의 명령창에서 다음 명령을 실행합니다.

Exchange Server 2007
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin

IIS 7
Import-Module WebAdministration (또는 Add-PSSnapin WebAdministration)

혹시 명령 실행이 다음과 같이 원할하지 않을 수도 있습니다..

Import-Module : File C:\Windows\system32\WindowsPowerShell\v1.0\Modules\webadministration\WebAdministrationAliases.ps1 cannot be loaded bec
ause the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.
At line:1 char:14
+ import-module <<<<  webadministration
    + CategoryInfo          : NotSpecified: (:) [Import-Module], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException,Microsoft.PowerShell.Commands.ImportModuleCommand

이와 같거나 또는 정상적으로 진행되지 않는다고 판단되면 다음의 명령을 실행 후 다시 해보세요. 실행 권한이 없어서 발생하는 문제일 가능성이 있습니다.

Set-ExecutionPolicy -ExecutionPolicy UnRestricted

사용하는 추가 명령이 두가지인데, Import-Module 명령은 Powershell 1.0에는 없는 명령입니다. 2.0이 나온지 얼마되지 않아 방식이 혼재하고 있는 상태로 보여집니다.

Powershell 2.0 에서 부터 OS에 설치되어 있는 모든 파워쉘 모듈을 올리는 명령이 제공됩니다. 아래 명령이 기억하기는 쉬울 것 같습니다.

ImportSystemModules

일반 Powershell 명령 이름과는 달리 하이픈(-)이 없습니다.

Posted by 안혁 windfruit

댓글을 달아 주세요

2009. 11. 11. 08:00

NETSH
2009. 11. 11.
안혁
http://hyok.kr



가끔 명령창으로 IP를 설정해야만 하는 경우가 생기죠? 방법은 다음과 같습니다.

netsh -c int ip set address name=<네트워크 이름> source=static addr=<IP 주소> mask=<MASK> gateway=<게이트웨이 주소>


사용 예)
netsh -c int ip set address name="로컬 영역 연결" source=static addr=192.168.0.10 mask=255.255.255.0 gateway=192.168.0.1

sourcestatic대신 dhcp를 넣는다면 동적 IP 설정이 되겠죠? 환경에 맞게 사용하면 되겠습니다.

'ETC' 카테고리의 다른 글

DreamSpark - MS 소프트웨어 무료 지원 프로그램  (0) 2010.09.01
Developer Tools를 Modal Dialog에서 열기  (0) 2009.12.19
명령창에서 IP 설정  (0) 2009.11.11
ProduKey  (0) 2009.09.23
VIM UTF-8 인코딩  (2) 2009.01.16
Windows 7 Beta 간단한 체험  (4) 2009.01.15
Posted by 안혁 windfruit
TAG IP, netsh

댓글을 달아 주세요

Exchange Server 2010
2009. 11. 10.
안혁
http://hyok.kr



Exchange Server 2010이 출시되었습니다. 오늘 새벽에 팀 블로그에 글이 올라왔네요.

http://msexchangeteam.com/archive/2009/11/09/453096.aspx


다운로드는 다음 URL을 통하여 가능합니다. 아직은 한글 버전이 없습니다.

http://www.microsoft.com/downloads/details.aspx?familyid=05741f65-2a7b-4070-879f-d74208d6171d&displaylang=en&Hash=QzYCQjUHlKfPtNY4htrmdMq44xufc2AwAIbyLYGUZdBA%2bKPuA6YdaT5ALmH4kdjaRhNCNScwNEoRWd4CSWJdfg%3d%3d

개발에 관심이 있는 분들은 다음의 웹 케스트를 참고하면 좋을 것 같습니다.

http://msexchangeteam.com/archive/2009/11/05/453052.aspx

(Part 1 of 6): Migrating Applications to Exchange Web Services
(Part 2 of 6): A Deep Dive into Using Autodiscover Service in Exchange Web Services
(Part 3 of 6): A Deep Dive into Impersonation and Delegation in Exchange Web Services
(Part 4 of 6): A Deep Dive into Exchange Web Services Notifications (Push/Pull)
(Part 5 of 6): A Deep Dive into the Exchange Web Services Managed API
(Part 6 of 6): Best Practices for Building Scalable Exchange Server Applications


 

Posted by 안혁 windfruit

댓글을 달아 주세요

2009. 11. 4. 02:46

Powershell 2.0
2008. 11. 04.
안혁
http://hyok.kr



Powershell 2.0이 드리어 출시 되었습니다. 정확히는 이미 출시되었었지만 Windows 7과 Windows Server 2008 R2에 내장된 형태로만 제공 되었던 Powershell 2.0이 이전 OS에서도 사용 가능하도록 출시 되었습니다.

http://go.microsoft.com/fwlink/?LinkID=151321

Windows Management Framework이라는 이름으로 공개가 되었는데, 이는 Powershell 2.0, WinRM 2.0, BITS 4.0을 가리킵니다. 이 중 앞의 2개만을 묶어 Windows Management Framework Core라는 설치 프로그램으로 제공됩니다.

사용자 삽입 이미지

설치 후 어디에 있는지 당황했습니다. 보조프로그램 아래에 있네요.

사용자 삽입 이미지

Powershell 2.0은 1.0에 비하여 많은 발전이 있었는데요. Management Framework라는 이름으로 묶을 만큼 많은 명령어를 제공하며, 원격으로 명령을 실행할 수도 있어 그 활용도가 더욱 높아졌습니다.

기본적으로 명령창을 제공하며 GUI 버전도 이번에 추가되어 좀 더 효과적인 작업이 가능하게 되었네요. Windows Powershell ISE를 실행하면 됩니다.

사용자 삽입 이미지


위 처럼 여러 줄의 스크립트를 실행해볼 수도 있고 디버깅도 가능합니다. (수준은 떨어지지만...) 결과는 중간의 실행창에 나오며 아래 창에서 명령을 직접 실행해볼 수도 있습니다. 실행창은 공유됩니다. 디버깅 중 변수값을 알아보려면 아래창에서 변수를 입력해봐야 합니다. ISE눈 아직 아쉬운 점이 많지만 Powershell의 발전처럼 더욱 나아질 것이라 기대해봅니다.
Posted by 안혁 windfruit

댓글을 달아 주세요

ASP.NET
2009. 10. 31.
안혁
http://hyok.kr



ASP.NET으로 구성된 웹 어플리케이션 서버가 L4 Switch에 의하여 Load Balancing 되는 경우 웹 페이지 접속 시 ASP.NET 컨트롤(트리 컨트롤 같은...)에서 없던 오류가 발생하거나 이미지가 [x] 표시 되는 현상이 발생할 수 있습니다. 이 경우 Fiddler를 통하여 페이지 요청 시 WebResource.axd 요청이 실패하는지 확인합니다. 해당 요청에서 문제가 있다면 서버의 이벤트 로그에 다음과 같이 CryptographicException 오류가 발생하였는지 확인해보세요.

Event code: 3005
Event message: 처리되지 않은 예외가 발생했습니다.
Event time: 2009-10-29 오후 10:05:45
Event time (UTC): 2009-10-29 오후 1:05:45
Event ID: 28188a45397841e499de7a4c38b4f4cd
Event sequence: 61
Event occurrence: 3
Event detail code: 0
 
Application information:
    Application domain: /LM/W3SVC/1/ROOT/blog-1-129012944438577909
    Trust level: Full
    Application Virtual Path: /blog
    Application Path: D:\Web\blog\
    Machine name: MCAS02
 
Process information:
    Process ID: 4460
    Process name: w3wp.exe
    Account name: NT AUTHORITY\NETWORK SERVICE
 
Exception information:
    Exception type: CryptographicException
    Exception message: 패딩이 잘못되었으며 제거할 수 없습니다.
 
Request information:
    Request URL: http://web.hyok.kr/blog/WebResource.axd?d=9n4PyABCLnJPx4xoU3nxwC4Kt15K3u-a245UfT6hW8JSf4r6suGuS1kEScfmyvro0&t=633739595980000000
    Request path: /blog/WebResource.axd
    User host address: 166.125.33.55
    User: 
    Is authenticated: False
    Authentication Type: 
    Thread account name: NT AUTHORITY\NETWORK SERVICE
 
Thread information:
    Thread ID: 10
    Thread account name: NT AUTHORITY\NETWORK SERVICE
    Is impersonating: True
    Stack trace:    위치: System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast)
   위치: System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
   위치: System.Security.Cryptography.CryptoStream.FlushFinalBlock()
   위치: System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo)
   위치: System.Web.UI.Page.DecryptStringWithIV(String s, IVType ivType)
   위치: System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context)
   위치: System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   위치: System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
 
 
Custom event details:


[패딩이 잘못되었으며 제거할 수 없습니다. (Padding is invalid and cannot be removed.)]

이 에러는 WebResource.axd 파일을 요청할 때 발생합니다. 이 파일은 ASP.NET의 컨트롤을 사용하는 경우 요청되는데요. 이 때 암호화 작업이 발생합니다. 암호화에 사용되는 Machine Key는 서버가 가지고 있습니다. Machine Key를 설정한적이 없다면 동적으로 생성되어 사용됩니다. 서버가 한 대일 경우는 상관 없지만, 여러 대이면서 Load Balancing을 하는 경우는 문제가 발생합니다. 요청마다 서버가 바뀌므로 암호화 키를 전달해준 서버가 아닌 서버가 암호화된 정보를 받는다면 해독할 수 없고, 위 처럼 오류가 발생하는 것이지요. 중국 사람, 일본 사람과 제가 대화 한다면 일본 사람에게 중국말을 하면 안되고 일본 사람에게 중국말을 하면 안되겠죠. 아마 위 에러처럼 깜짝 놀랄 겁니다. 모두가 이해할 수 있는 통일된 변환(여기서는 암호화)이 필요합니다. 아군도 암호를 해독 못하는 이 상황은 해결이 필요하네요.

이는 모든 웹 어플리케이션 서버의 Machine Key를 동일하게 함으로 해결할 수 있습니다. 새로운 Machine Key 키 생성은 다음의 사이트에서 도움을 받으세요.

http://www.orcsweb.com/articles/aspnetmachinekey.aspx

생성된 Machine Key는 web.config에 다음의 형태로 삽입하면 됩니다.

<?xml version="1.0"?>
<configuration>
  <appSettings/>
  <connectionStrings/>
  <system.web>
    <machineKey
      alidationKey='123429A424239D13BE9B0AA06242A2984836A22AF64810C5DBC7857BED4F7D347C0F79302051DB271B44CB6D5D1EE47A1A001AD98F44A6F8162D833E2D612D0A'
      decryptionKey='ABCD2F551DB337398AA5C4654DED3889604A593F68559FED' validation='SHA1'/>
  </system.web>
</configuration>

참고 자료는 다음과 같습니다.

http://blogs.msdn.com/paraga/archive/2006/07/03/655081.aspx
http://jagbarcelo.blogspot.com/2009/08/solution-padding-invalid-cannot-be.html

'.Net' 카테고리의 다른 글

CryptographicException: Event code 3005  (0) 2009.10.30
HTML에서 특수 기호 인코딩의 필요성  (0) 2009.08.19
단일 프로세스 실행  (0) 2008.09.04
Posted by 안혁 windfruit
TAG ASP.NET

댓글을 달아 주세요

2009. 9. 23. 14:07

Windows
2008. 09. 23.
안혁
http://hyok.kr



Windows 또는 설치 되어 있는 MS 제품들의 제품 번호를 알 수 있도록 돕는 프로그램이 있군요.

http://www.nirsoft.net/utils/product_cd_key_viewer.html


실행하면 Windows 부터 설치 되어있는 MS 제품들의 제품 번호를 보여줍니다. 가끔 이런 툴이 필요해지는 긴급한 때가 있기도 하지요.

'ETC' 카테고리의 다른 글

Developer Tools를 Modal Dialog에서 열기  (0) 2009.12.19
명령창에서 IP 설정  (0) 2009.11.11
ProduKey  (0) 2009.09.23
VIM UTF-8 인코딩  (2) 2009.01.16
Windows 7 Beta 간단한 체험  (4) 2009.01.15
2009년을 환영합니다.  (0) 2009.01.01
Posted by 안혁 windfruit

댓글을 달아 주세요

Exchange Web Services
2009. 09. 16.
안혁
http://hyok.kr



Exchange Web Services(EWS) Managed API 1.0 RC(발표 후보)가 지난 8월 18일에 릴리즈 되었습니다. 기본 EWS 만으로도 .Net 기반의 개발이 가능했지만, 이를 이용하면 좀 더 편리하게 개발할 수 있습니다.

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=e8f38dd1-f123-4a16-b4c8-584d1f84af48


개발 환경은 Visual Studio 2008, .Net Framework 3.5 이상입니다. 서버는 Exchange Server 2007 SP1 이상이 필요합니다. 설치되는 위치에 GettingStarted.doc 파일이 있습니다. 파일 이름 처럼 시작하는데 도움이 될 것입니다.

아직 관련 자료가 많지는 않은데요. 다음 자료들을 참고하시면 컨셉을 이해하는데 도움이 될 것입니다.

http://msexchangeteam.com/archive/2009/03/25/450892.aspx
http://channel9.msdn.com/pdc2008/BB46/


다른 개발 셈플이 필요하다면 다음의 블로그가 도움이 될 것입니다. 이 분야에서는 매우 유명한 곳이죠.

http://gsexdev.blogspot.com/

'Exchange Server 2007,2010 > Exchange Web Services' 카테고리의 다른 글

EWS Managed API 1.0 RC  (0) 2009.09.16
EWS로 다른 사람의 일정 요청  (0) 2008.07.30
Posted by 안혁 windfruit

댓글을 달아 주세요

C#(ASP.NET)
2009. 08. 19.
안혁
http://hyok.kr



HTML 문서에서 특정 의미로 해석되는 ", <, >등의 문자들을 글 내용, 글 제목 등으로 그대로 출력 시 예측하지 못한 돌발 상황에 빠지게 됩니다.
 
예를 들어,
[code]
<input value="테스트 내용" />
[/code]
이렇게 HTML 문서가 만들어질 것이라고 예상하고 코드를 작성하였는데, value 값에 "문자가 들어가서
[code]
<input value="누가 " 이런 글자를 입력해삼?" />
[/code]
이런 HTML이 되어버려 화면에 '누가'만 나와버리는 상황이 그에 해당되겠습니다.
 
이 때, 개발자가 저런 특수문자를 입력 못하게 할 수도 있겠지만...
잘 생각해보십시오. 지금도 그 특수문자라는 것을 당신은 보고 이 글을 이해하고 있지 않습니까?
보여줄 방법이 있겠군요.
막아버리면 이모티콘조차 사용할 수 없는 황량한 프로그랭이 될겁니다. ( '');;;;
 
 
이상한 문자 입력하는 것. 다 받아 주십시오.
그럼 저장할 때 뭔가 좀 해볼까요?
그런 것, 하지 마세요. 나중에 검색할 때 방해됩니다.
그냥 저장합니다.
 
그럼, 출력할 때 무언가 하는 것이겠군요.
그렇습니다.
비하인드 코드에서 문자열을 대입할 때 다음 함수를 사용하여 문자열을 인코딩합니다.
 
[code]
string encodedStr = HttpUtility.HtmlEncode(orignalStr);
 [/code]
 
혹시 이런 질문을 하는 사람이 있을지 모르겠습니다.
디코딩은 언제하나요?
안해도 됩니다. 브라우저가 해줄겁니다.
 

추신)
'문자는 인코딩 되지 않습니다. '문자로 문자열을 묶어 다음과 같은 상황이 발생하지 않도록 주의하세요.
[code]
<input value='누가 ' 이런 글자를 입력해삼?' />
[/code]
값을 넣을 때, "문자로 묶는 습관을 가지기시 바랍니다.

'.Net' 카테고리의 다른 글

CryptographicException: Event code 3005  (0) 2009.10.30
HTML에서 특수 기호 인코딩의 필요성  (0) 2009.08.19
단일 프로세스 실행  (0) 2008.09.04
Posted by 안혁 windfruit
TAG C#

댓글을 달아 주세요

Office Communication Server 2007
2008. 05. 30.
안혁
http://hyok.kr



OCS 주소록 동기화라고 하면 두가지를 생각할 수 있는데, 하나는 실제 Active Directory, Exchange Server의 상태를 반영한 주소록을 생성하는 것이고, 다른 하나는 생성된 주소록을 OC가 다운 받는 것입니다. 전자가 이루어 지지 않으면 모든 클라이언트는 실제와는 다른 주소록을 사용할 것이고, 후자가 이러어 지지 않으면 최신 주소록을 받은 사용자만이 최신의 주소록을 사용할 수 있을 것입니다.


첫번째,  주소록 강재 생성 방법은 OCS 서버에서 동기화 명령을 수행하는 것입니다.

"C:\Program Files\Microsoft Office Communications Server 2007\Server\Core\abserver.exe" -syncnow


OCS 2007 R2는 폴더 이름이 조금 다릅니다.

"C:\Program Files\Microsoft Office Communications Server 2007 R2\Server\Core\abserver.exe" -syncnow


이 명령을 실행하면 현재의 정보를 반영한 주소록을 생성합니다.

사용자 삽입 이미지



둘째, 클라이언트가 주소록을 다시 받도록 해야합니다.

하지만, OC는 강재 동기화 기능을 재공하지는 않는 것 같습니다. 하루 간격으로 동기화를 하는 것으로 보이는데요. 최초 접속 시 접속 환경이 정상적일 경우 다운로드 받고, 그 이후부터는 서버의 주소록 파일(Delta file)의 이전 날짜를 근거로 하여 다운로드 여부를 경정합니다. 다운로드 실패의 경우, 1, 2, 4분 같이 배수 간격으로 최대 64분까지 다운로드를 시도합니다. 자세한 사항은 아래 경로를 참고하세요

http://technet.microsoft.com/en-us/library/bb894482.aspx

주소록 파일을 받는 경로가 다음과 같다고 합니다.

<drive letter>: Documents and Settings\<user>\Local Settings\Application Data\Microsoft\Communicator


운영체제가 비스타 또는 Windows Server 2008이면 경로가 다릅니다.

<driver letter>:\Users\<user>\AppData\Local\Microsoft\Communicator


OC 기존 버전은 로그인 계정과 관계없이 다운받은 같은 주소록을 사용했는데, OC R2가 되면서 로그인 계정마다 폴더를 만들어 다운로드 하는 것 같습니다. 같은 컴퓨터라도 로그인 계정에 따라 주소록의 업데이트 정도가 다를 수 있겠네요. (기존 버전에서는 다른 회사에 로그인 했는데, 우리 회사의 주소록이 나오더군요.)

해당 폴더의 내용을 지우고 OC를 로그인 하면 주소록을 새롭게 받습니다. 최신 주소록을 받는지는 확인이 안 되었지만 새롭게 받는 만큼 의미가 있다고 생각합니다.

이상의 내용은 트러블 슈팅 중 결과를 바로 확인해야 하는 상황을 위한 것이지, 정상적인 환경에서는 자연스럽게 동기화가 진행되므로 느긋하게 기다리시면 동기화는 자동으로 진행됩니다.

'Office Communication Server' 카테고리의 다른 글

OCS 주소록 동기화  (0) 2009.07.16
Posted by 안혁 windfruit

댓글을 달아 주세요

이전버튼 1 2 3 4 5 6 ··· 9 이전버튼