반응형

이 포스트를 읽기 전에 꼭 URL Rewriting in ASP.NET 포스트를 먼저 읽어보도록 하자.

프로그램에서는 무엇이든지 간에 해당 기술의 기본원리를 알고 이해해야지만 더 좋은 적용방법과 응용방법이 생각날 것이고

문제에 직면했을때 더 빠른 해결방법을 찾아낼 수 있을것이다.

단지 주어진 기술, 또는 Copy & Paste는 자기발전에 전혀 도움이 되지 않거니와 개발자라고 하기에 챙피한 일이지 않은가?

그럼 모두 앞 포스트를 숙지하였다고 생각하고 앞 포스트의 내용을 기초로 하여 실제 사용가능한 URL Rewriter를 만들어 적용하여 보자.

아마도 아래 내용을 이해했다면 HttpModule을 이용한 URL Rewriter를 만드는건 어렵지 않을 것이다.

만약 어렵다면 제가 만들어놓은 어셈블리(.NET 2.0으로 제작)를 다운 받고 따라해 봅시다. ㅡㅡ;
(사실 내가 셋팅방법을 잊어버릴까봐 정리해 놓는것이다. ^^)



1. 어셈블리 파일을 해당 프로젝트의 /Bin/ 폴더에 복사한다.

2. Web.config 수정
    2-1. configuration 하위에 추가
      <configSections>
        <sectionGroup name="RewriterConfig">
          <section name="Rules" type="UrlReWriter.ReWriterRule, RewriterModule"/>
        </sectionGroup>
      </configSections>

    2-2. system.web 하위에 추가
      <httpModules>
        <add name="RewriterModule" type="UrlReWriter.ReWriterModule, RewriterModule" />
      </httpModules>

    2-3. configuration 하위에 추가
      <RewriterConfig>
        <Rules>
          <RewriterRule>
            <Url>^/([a-zA-Z0-9]+)/([0-9]+)/$</Url>
            <TargetUrl>/RW_Test.aspx?UserID=$1&amp;SeqNo=$2</TargetUrl>
          </RewriterRule>
          <RewriterRule>
            <Url>^/([a-zA-Z0-9]+)/([0-9]+)$</Url>
            <TargetUrl>/RW_Test.aspx?UserID=$1&amp;SeqNo=$2</TargetUrl>
          </RewriterRule>
           ................
       </Rules>
  </RewriterConfig>

3. IIS 셋팅
모든 IIS의 Request를 ASP.NET으로 라우트하기 위한 셋팅이다. 본 화면은 Windows 2003을 기준으로 하고 있다.

속성 > 홈디렉터리 > 구성을 클릭하면 다음과 같은 화면을 볼 수 있다.


   

그림과 같이 "삽입"을 클릭하여 다음 화면을 볼 수 있다.



실행파일 항목에 .NET 2.0의 aspnet_isapi.dll 의 위치를 명시해 줍니다. 아마 대부분 아래와 같은 경로일 것입니다.
c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll

그 다음 제가 빨간색으로 박스를 쳐 놓은 부분... 저거 때문에 한 3일은 무한삽질한 듯 합니다. ㅠㅠ

저는 "파일이 있는지 확인"이 상단의 실행파일에 명시한 파일이 있는지 확인하는 옵션인줄 알았습니다. 그런데... 어흐흑... 그게 아니더군요.

앞 포스트의 마지막즘에 "필요한 디렉토리 구조 만들기" 를 보면 매년 해가 바뀔때마다 해당 디렉터리와 Default.aspx 파일이 필요하다고 되어 있다.

그 이유도 물론 잘 설명되어 있다. 바로 그 점이다 "파일이 있는지 확인" 이 체크되어 있으면 폴더 또는 파일이 존재할 경우에만 실행파일을 호출(라우팅)해 주는것이다.
앞 포스트의 "결과" 의 마지막 문장인 "모든 요청 정보를 ASP.NET 엔진에 라우트하도록 IIS 구성정보를 설정해야 한다" 이 부분이 의미하는것이 바로

"파일이 있는지 확인"에 체크를 해제하고 사용하라는 의미인것 같다.

이 체크가 해제되어 있을 경우 폴더나 파일이 존재하는지 확인하지 않고 바로 "실행파일"에 명시되어 있는 파일로 라우팅을 해 준다.

우리가 대부분 블로그 같은 경우 http://블로그도메인/글번호 와 같은 형태를 많이 사용하게 되는데 이럴경우 꼭 "파일이 있는지 확인"에서 체크를 해제해야만 한다.
반응형
반응형

무슨 이유인지 모르겠지만
SQL Server 2008 Express 버전을 설치하고보니 외부접속이 막혀있었다.

외부 접속을 허용하는 방법은

'시작-모든 프로그램-Microsoft SQL Server 2008-구성 도구-SQL Server 구성 관리자'의
구성 관리자(Sql Server Configuration Manager)를 실행하면

'SQL Server 구성 관리자(로컬)->SQL Server 네트워크 구성->(인스턴트명)에 대한 프로토콜'
이라는 항목이 있다.

여기서 TCP/IP와 명명된 파이프를 사용하도록 설정하면 된다.
TCP/IP는 등록정보를 보면 IP주소 탭에 IPALL의 TCP 포트에 '1433'을 넣고 IP1의 사용도 '예'로 체크되어있는지 확인해야 한다.
반응형
반응형
반응형
반응형

반응형
반응형

ㅋㅋ
반응형

반응형

[Page.GetPostBackEventReference()를 이용한 doPostBack]

 

자바스크립트로 behind code의 메서드를 실행하고 싶은 경우가 있다.


이럴 경우 보통은 스크립트에서 __doPostBack() 메서드를 정의해서 사용하곤 한다. 하지만, 이는 좋지 못한 방법이다.

 

__doPostBack() 메서드는 .net에서 자동 생성하는 부분으로, 개발자가 별도로 작성하여도 바뀔 가능성이 있다. 또한, .net에서 자동으로 생성하지 않는 경우도 발생한다.

 

스크립트로 behind code의 메서드를 실행하고 싶을 때는 아래와 같은 방법을 권한다.

 

<%= Page.GetPostBackEventReference( WebFormButton ) %>

 

이는 postback이 발생하는 WebForm Control을 매개변수로 넘겨주면, 자동으로 __doPostBack()을 생성해 준다.


ex)
[Page.aspx]
btnOne -> HTML Input 컨트롤 - visible

<script language="javascript">
    function btnOneClick()
    {
        <%= Page.GetPostBackEventReference( btnTwo ) %>
    }
</script>

 

<input type="button" onclick="btnOneClick()">

 

[Page.aspx.cs]
btnTwo -> WebForm Button 컨트롤 - invisible

private void btnTwo_Click(...)
{
    ...
}

 


반응형
반응형

쿼리창에서 "텍스트로 결과보기"를 선택하신 후에 실행하셔서

결과값을 그대로 복사하셔서 메모장에 복사하여 .html, .htm로 저장하서셔 보시면

해당 DB내의 Table 명세서가 그대로 출력이 되네요..!!

오홍..~~ 원래 2000, 2005에서 실행되는거라고 했는데

2005를 2008로 변경했는데 별 무리 없이 잘 돌아가네용.!!

DB 유지보수하는데 꽤 도움이 될만한 소스인것 같습니다. 이거 만드신 분 정말 노가다 최고인듯.ㅋㅋ
반응형

+ Recent posts