게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
XMLHTTP 와 Global.asa에 대하여 질문드립니다. |
---|
작성자: 정진범
작성일시: 2007-06-13 15:42,
조회수: 1,499
|
안녕하세요 정진범 이라고 합니다.
한가지 풀리지 않는 문제점이 있어서 질문을 남깁니다. 제가 지금 asp 템플릿 작업을 하고 있는데요... 디자인 파일(html) 따로 처리페이지 따로(asp) 이렇게 작업하고 있는데요... {...} 이런형태로 파싱문자를 이용해서 치환하는 형태로 사용할수 있는 일종의 프레임워크를 제작중에 있습니다. 문제가 인클루드 파일을 디자인파일에 걸수 있도록 할려고 하는데요... 예를 들면... inc.asp <---- 인클루드 파일 <% Response.Write ("aaa") %> main.html <----- 디자인 파일 <!-- #include file = inc.asp --> <html> <body> bbbb </body> </html> 이런형태가 있을때 템플릿 파일에서 저 디자인 파일을 읽어 드릴때 그대로 읽어드리면 텍스트 형태로.... FSO를 이용하게 되면... 그래서 정규표현식으로 인클루드를 찾아서 그 안에 파일내용을 읽어서 원본디자인파일에 인클루드된 내용을 삽입합니다. 결과값이 <% Response.Write ("aaa") %> <html> <body> bbbb </body> </html> 이렇게 되는데요... 근데 이렇게 나오면 의미가 없죠... 실행된 결과값(html)을 받아야 되니깐요... 그래서 xmlhttp or serverxmlhttp 를 이용했습니다. aaaa <html> <body> bbbb </body> </html> 이런형태로 정상적으로 출력하는데까지는 성공했습니다. 그런데 여기서 문제가 발생하기 시작했습니다. 웹서버를 처음시작하거나 다시시작이 아닙니다. 그러니깐 서버를 껏다가 켜서 처음 웹서버가 시작할때 저파일을 호출하면 send에서 락이 걸려버립니다. 흠 질문이 무지 길었는데요... 다시 간략하게 정리하자면... <% Function GetHTMLBin( URLaddress ) Dim Http Set Http = Server.CreateObject("MSXML2.ServerXMLHTTP") On Error Resume Next Http.Open "GET", URLaddress, False Http.setRequestHeader "Accept-Language", "ko" Http.Send GetHTMLBin = Http.responseBody Set Http = Nothing End Function ========================================================== ' 바이너리로 읽어온것을 텍스트로 변환합니다. ========================================================= Function BinToText( varBinData, intDataSizeInBytes ) ' as String Const adFldLong = &H00000080 Const adVarChar = 200 Set objRs = Server.CreateObject("ADODB.Recordset") objRs.Fields.Append "txt", adVarChar, intDataSizeInBytes, adFldLong objRs.Open objRs.AddNew objRs.Fields("txt").AppendChunk varBinData BinToText = objRs("txt").Value objRs.Close Set objRs = Nothing End Function Response.Write BinToText( GetHTMLBin("http://localhost/inc.asp"), 32000) %> -- inc.asp -- <% Response.Write ("aaaaa") %> 이렇게 실행을 하게 되면(서버를 처음킬때) 락이 걸립니다. 익스플러러가 다운되는건 아니구요... 계속 요청만 합니다. 먹통이죠... 그러다가 IIS의 해당사이트를 그냥 중지->재시작을 하게 되면 그때부터는 제대로 작동을 하기 시작합니다. 온갖삽질 끝에 Http.Send <---- 이부분 에서 락이 발생한다는것을 알았습니다. 이게 글로발.asa랑 연관이 있는거 같더군요... 글로발 파일을 없애면 처음실행시에도 락이 발생하지 않습니다. 두번째 부터는 실행이 잘된다고 말씀드렸는데.. 이때 글로발 파일을 아무런 수정없이 저장만 한번 해버리면 그때부터 또 락이 발생합니다. 그러다가 웹서버를 다시 중지 시작 하면 또 그때부터 되구요... 참고로 Response.Write BinToText( GetHTMLBin("http://localhost/inc.html"), 32000) 즉 결과값을 가지고 올 파일이 html(파일확장자를 변경)이면 글로발이 있던 없던 글로발을 저장하는 말든 무조건 실행이 잘됩니다. <% Response.Write ("aaaaa") %> 이렇게 실행되지 않는 결과값이 그대로 그냥 뿌려지는 거죠... 그러나 다시 .asp 로 바꾸게 되면 락이 걸립니다. IIS다지 중지-시작해주면 다시 정상동작하구요.... 왜 이런현상이 발생할가요? 또 참고로 하나 말슴드리면 Response.Write BinToText( GetHTMLBin("http://localhost/"), 32000) Response.Write BinToText( GetHTMLBin("http://www.naver.com/"), 32000) 위처럼 하면 제대로 동작을 합니다. 해당웹사이트 중지, 시작 안해도 잘 동작합니다. 글로발 파일 그냥 저장해도 잘 동작합니다. 현재 동일 웹서버에서 이런 현상이 발생하는것 같습니다. 질문을 너무 길게 드렸네요... 무슨 강좌쓰는것도 아니고 ㅡ.ㅡ;;; 글로발 파일에는 별다른게 없습니다. 그냥 애플리케이션 변수에 디비연결문자열 담는것 이외에는 다른거 하는게 없습니다. 만약 글로발에 문제가 있어서 그랬다면 해당웹사이트 재시작으로 해결이 안되었겠죠. 주인장님도 바쁘시겠지만 한가하실때 직접해보시면 이상하다고 느끼실껍니다. 왜 그런지 답변부탁드리겠습니다. 더운날씨에 수고하십시오... 감사합니다. |
IP 주소: 121.138.164.164
|
전체 2,095 건의 게시물,
84 페이지로 구성된
ASP, ASP.NET, IIS & Script 게시판의
19 페이지입니다.
게시물 | ||||
---|---|---|---|---|
1,693 | 2007-08-06 | 6,226 | ||
1,692 | 2007-08-06 | 4,257 | ||
1,691 |
초짜 |
2007-07-03 | 1,435 | |
1,690 | 2007-07-04 | 3,690 | ||
1,688 |
초짜 |
2007-07-03 | 1,263 | |
1,687 | 2007-07-03 | 3,569 | ||
1,686 |
장윤태 |
2007-06-27 | 4,466 | |
1,685 | 2007-06-27 | 3,921 | ||
1,684 |
장윤태 |
2007-06-28 | 1,384 | |
1,681 |
장윤태 |
2007-06-21 | 1,276 | |
1,680 | 2007-06-22 | 3,626 | ||
1,679 |
지푸라기 |
2007-06-15 | 1,324 | |
1,678 | 2007-06-15 | 3,747 | ||
1,677 |
장윤태 |
2007-06-14 | 1,974 | |
1,676 | 2007-06-14 | 4,295 | ||
정진범 |
2007-06-13 | 1,499 | ||
1,674 | 2007-06-13 | 3,804 | ||
1,673 |
이석호 |
2007-06-13 | 1,290 | |
1,672 | 2007-06-13 | 3,752 | ||
1,671 | 2007-05-28 | 11,675 | ||
1,670 | 2007-05-28 | 4,014 | ||
1,669 | 2007-05-18 | 3,814 | ||
1,668 | 2007-05-19 | 4,384 | ||
1,667 | 2007-05-20 | 4,525 | ||
1,666 | 2007-05-15 | 37,620 |