2011년 9월 23일 금요일

ASP.NET에서 QueryString에 한글을 전달해야 할 경우.....

ASP.NET에서 파라메터로 한글 데이터를 보내야 할 경우가 있다.

아무 생각없이 string 형태를 그대로 넣어주면......

깨져서 전달되기 때문에 사용할 수 없다.

그럴경우 아래의 코드를 사용하면, 손쉽게 해결할 수 있다.


byte[] name = Encoding.UTF8.GetBytes(textBox1.Text);
string str = "";

for (int i = 0; i < name.Length; i++ )
{
    str += "%" + string.Format( "{0:x2}", name[i] );
}


1. 입력받은 데이터를 UTF8 형태의 Byte배열로 변환한 후에
2. Byte를 HexString으로 변환하여 '%' 문자를 붙여주면 된다.

ASP.Net 페이지에서 아주 쿨하게 String을 그대로 읽어올 수 가 있게 되는걸 확인할 수 있다.

2011년 9월 14일 수요일

스마트 클라이언트 트러블 슈팅

스마트 클라이언트를 페이지에 넣어야 하는 일이 있었다.
VS2005 에 내장된 테스트 웹서버로 돌리면 아무 이상없이 돌아가는 스마트 클라이언트가
계속 'Error Code 500 서버 오류' 를 내보내는 것이 아닌가???

여기저기 뒤져봐도 다른사람들은 잘 되는거 같은데.......
MIME도 설정해주고 별짓을 다했지만 못찾았었는데, 서버를 잘못 만져서 다른 동작마지 안되는 상황에 이르러 과감히 서버를 재설치 하고, 아무생각없이 웹사이트를 게시 했더니 스마트 클라이언트가 정상 동작 한다.(..머지..-_-;;)

다른점을 찾아서 역추적 해보고 환경을 바꾸어본 결과는....역시 내 무식함이 원인....

서버의 가상디렉터리 부분에서 실행권한을 설정하는 부분이 있는데, 스마트 클라이언트는 DLL이나 EXE를 실행한다는 생각에 실행권한을 '스크립트 및 실행 파일' 로 설정해놓아서 서버가 오동작 했던 것이었다.

그래서 서버를 초기화 한후 '스크립트 전용' 으로 설정된 상태로 게시하고 돌렸기에 정상동작 했던거고.....

DLL과 EXE도 스마트 클라이언트 환경에선 그저 스크립트일 뿐이라는 사실......

물론 나처럼 오버하다가 삽질하시는 분이 없으면 좋겠지만..... 혹시나 방황하실 오지랍 넓으신 개발자 분이 계실까봐 이렇게 기록해본다.

2011년 9월 2일 금요일

IIS에 ASP.NET 설치하기.

가상머신에 IIS를 설치하고, 잘 쓰다가 서버쪽을 잘못 건드려서 IIS를 날리고 다시 설치했다.

헌데....허걱!! ASP 페이지가 동작을 하지 않는다.
"IIS 메타베이스에 액세스 하지 못했습니다."
뭔소리지??? 왠 갑자기 액세스 오류?? 라고 이리저리 찾아본 결과......

IIS 는 단순히 서버일 뿐....ASP.NET이 기본적으로 설치되는것이 아니었던 것이다. -0-;

아래 그림처럼 경로를 타고 들어가서 ASP.NET을 설치해주니 정상적으로 동작되었다.


















그럼 처음엔 왜 됐었냐고?????

처음엔....IIS를 설치하고 .NET Framework를 설치했었거든...-_-;;;

아무튼 간단한걸로 헤매기도 참 가지가지네....에효....