Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Web Programming
- HTML5
- 보안
- D330
- 단열
- 문자열
- ASP.NET
- D330-10igm
- 자바스크립트
- Lenovo D330-10igm
- 이보드
- 고전게임기 만들기
- network
- 피들러
- 네트워크
- 웹
- 인테리어
- ubuntu
- 셀프인테리어
- 윈도우 8
- 진단항목
- c#
- retropie
- 안드로이드
- 우분투
- fiddler
- 인증 및 세션관리
- 한컴오피스
- WEB
- 고전게임
Archives
- Today
- Total
Kinesis´s Open Document
ASP.NET C# - IIS7.x 에서 AjaxPro (Ajax.NET Professional) 사용하기 본문
MEMO/기술 자료/C# Language
ASP.NET C# - IIS7.x 에서 AjaxPro (Ajax.NET Professional) 사용하기
Kinesis 2012. 2. 24. 16:44웹 프로그래밍을 하다보니 AjaxPro (Ajax.NET Professional)를 이용해야 할 일이 생겼다.
Ajax.NET Professional 의 공식홈페이지에 들어가 7.x 버젼대를 다운받아 압축을 풀어보면 다음과 같이 총 5개의 파일이 나온다.
AjaxPro2.dll
AjaxPro.dll
AjaxPro.JSON.2.dll
AjaxPro.JSON.dll
web.config
AjaxPro.dll
AjaxPro.JSON.2.dll
AjaxPro.JSON.dll
web.config
이 파일들 에서 자신이 사용할 1개의 dll 만을 웹서비스 폴더의 Bin 폴더에 넣어주면 되는데, 전부다 넣을 경우 dll이 내부의 함수들의 충돌에 의해 정상작동이 이루어지지 않아 문제를 발생시킨다. 또한 파일명 내에 2 가 적힌 것은 .Net Framework 2.0 의 환경에서 사용하는 목적으로 만들어진 dll 이고 2가 붙지 않은 것은 .Net Framework 1.1 버젼의 환경에서 사용하는 dll로서 나는 AjaxPro2.dll을 Bin 폴더에 집어 넣었다.
그리곤 Web.config 에 AjaxPro.dll 을 이용하기 위한 httpHandlers를 등록을 했는데 왠걸 HTTP 오류 500.23 - Internal Server Error 이 떠버린다.
이런 경우 해결하는 방법이 2가지가 있다.
첫번째 방법으로는 IIS 응용 프로그램 풀에서 관리되는 파이프라인 모드를 클래식으로 두는 방법이다.
이렇게 하면 AjaxPro를 이용할 수 있는 환경이 구성된다. 하지만 사실상 클래식 모드로 전환 할 경우 일부 기능이 제한으로 인한 예외 발생등이 생기게 되므로 사실상 별로 추천할 것은 되지 않는 듯 했다.
두번째 방법으로는 마이그레이션을 이용하는 것이다.
명령 프롬프트 상에서 appcmd 를 통해 마이그레이션을 하면 되는데,
%SystemRoot%\system32\inetsrv\appcmd migrate config "[응용 프로그램 풀 이름]/"
예) %SystemRoot%\system32\inetsrv\appcmd migrate config "Kinetic.NET/"
명령어를 통해서 마이그레이션을 하면 해결이 되며 AjaxNET Professional (AjaxPro.NET) 을 사용할 환경 준비가 끝이 나게 된다.
그 외에 Ajax.NET Professional (AjaxPro.NET) 을 이용하면서 주의해야할 점이 몇가지 있는데.
내가 시행착오법을 통해 확인한 사실은 다음과 같다.
<head></head> 태그에는 runat="server" 속성이 들어가 있어야 한다.
예) "<head runat="server">…헤더 구성요소…</head>"
<body></body> 태그 안에는 <from id="form_id" runat="server"></form>이 존재해야 한다.
예) "<body><form id="form1" runat="server"></form></body>"
함수 사용시 Class 명과 Inherits 가 동일해야 하고 클래스명을 지정해 주어야 한다.
예) "Sample.FunctionA();" 등
AjaxMethod 로 지정된 함수 내에서는 HttpContext.Current.Response.Write() 함수를 사용할 경우 에러가 발생한다.
일정 시간 간격을 기준으로 오류가 발생할 경우 콜백함수를 지정하여 처리하면 문제가 해결된다.
예) "<head runat="server">…헤더 구성요소…</head>"
<body></body> 태그 안에는 <from id="form_id" runat="server"></form>이 존재해야 한다.
예) "<body><form id="form1" runat="server"></form></body>"
함수 사용시 Class 명과 Inherits 가 동일해야 하고 클래스명을 지정해 주어야 한다.
예) "Sample.FunctionA();" 등
AjaxMethod 로 지정된 함수 내에서는 HttpContext.Current.Response.Write() 함수를 사용할 경우 에러가 발생한다.
일정 시간 간격을 기준으로 오류가 발생할 경우 콜백함수를 지정하여 처리하면 문제가 해결된다.
이러한 부분만을 잘 지키면, Ajax.NET Professional (AjaxPro.NET) 의 이용에 있어 큰 문제는 발생하지 않을 것이다.
아래는 CS 에서 사용하는 예제 셈플
using System;using System.Web;using AjaxPro;public partial class _Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default)); } [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)] public string Test() { return HttpContext.Current.Request.UserAgent; }}
'MEMO/기술 자료 > C# Language' 카테고리의 다른 글
ASP.NET C# - System.Web.UI.Page 내 On 이벤트 처리와 관련한 메모 (0) | 2012.10.12 |
---|---|
ASP.NET C# - DB(Database for MSSQL)를 이용한 Session 환경 구성하기 (0) | 2012.10.02 |
ASP.NET C# - Dynamic XML in IIS7 / iis7 환경에서 다이나믹(동적) XML 구성하기 (2) | 2012.08.23 |
C# - 파일을 읽어들여 구분자 문자열(String)을 키(Key)로 활용하여 리스트 생성하기 예제 (0) | 2012.03.21 |
C# - 문자열(String)을 인덱스 키(Key)로 활용하여 값 처리 하기 (Dictionary) (0) | 2012.03.21 |
ASP.NET C# - 웹서비스 폴더(디렉터리) 경로 얻어오기 (HttpContext) (0) | 2012.02.24 |
ASP.NET C# - 클라이언트 브라우저 정보 얻어오기 (HttpContext) (0) | 2012.02.24 |