게시판 본문 COM / COM+ by VB 6.0 - Read Only
웹용 dll에 대한 질문입니다.... |
---|
작성자: zziuni
작성일시: 2005-08-18 17:47,
조회수: 5,754
|
강좌는 열심히 보고 있습니다만..
글쓰는건 또 오래간만이군요. ^^ VB.net으로 웹용 DLL를 만들었습니다. 내용은 asp에서 사용할 공용 함수 라이브러리.. 정도 되는 겁니다. 원소스는 asp함수모음이였는데, 이걸 좀더 체계와 하고, 몇몇 .NET Framework에서 제공하는 기능을 쓰기 위해서 VB.NET으로 만들었습니다. (뭐 90%는 vb소스와 같습니다만...) 이걸 .net Framework에 있는 regsvcs.exe로 등록을 했습니다. 그랬더니 '구성요소서비스'에 등록이 되더군요. 그리고 별다른 설정은 하지 않았습니다. (짦은 지식으로는 Com+등록이 되었다고 받아드리고 있습니다. ) <OBJECT clsid ProgID="FunctionDLL.classFunctionDLL" ID="F" RunAt="Server"></OBJECT>asp에서 위와 같은 선언자를 통해 F.FileLoad()... 같은 형태로 사용하고 있습니다. 테스트도 잘했고, 잘 썼습니다. 문제는 프로젝트에 실 적용을 할려고 개발서버에 동일하게 세팅을 했더니 로컬 페스로 파일을 컨트롤 하는 함수들이 모두 에러가 난다는 겁니다. (로드, 생성,삭제, 이동, 복사....) 대략 다음과 같은 에러입니다. -------------------------------------------- FunctionDLL 오류 '80070002' 파일이나 어셈블리 이름 ADODB 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 찾을 수 없습니다. /dll.asp, 줄 93 -------------------------------------------- 일단 웹유저에 의해 실행된 DLL의 로컬 파일 접근에 대한 권한 에러라고 판단했습니다. 이문제를 해결하기 위해 다음과 같이 했습니다. 1. 구성요소 서비스에서 해당 객체의 등록정보에 들어가 활성화 유형을 '라이브러리 응용프로그램'에서 '서버 응용프로그램'으로 변경했습니다. (NT 서비스로 실행도 적용.) 2. 실행계정을 로컬 administrator로 지정했습니다. 3. 이렇게 하고 asp에서 함수 테스트를 해보니, 객체 참조 자체가 안되더군요. 그래서 다시 구성요소 서비스로 들어가 등록정보의 '보안'에서 '이 응용 프로그램에 대한 액세스 검사 수행' 의 체크를 풀었습니다. 그랬더니 객체 참조는 되더군요. 그러나 여전히 파일에 대한 권한이 없어서 함수는 오류입니다. 4. 지정된 폴더에 IUSER_Server에 수정권한을 주었습니다. (사실은 사이트 Root전체에..) 그래도 안되더군요. ㅡ ㅡ;;; 현재 DLL안의 함수는 형태만 .Net DLL이지 소스는 asp의 함수와 다르지 않습니다. ASP일때도 별다른 설정없이 잘 썼고, DLL로 변경후에도 테스트할때는 별 문제가 없었습니다. (스트레스 테스트할때도 500에러한번 없었는데 말이죠...) 일단 DLL안에 관련 함수 소스하나를 올려봅니다. 올려주셨던 강좌들로 나름대로 알고 있다고 생각했는데, 여지없이 무너지고 있습니다. T T. IIS5.0과 IIS6.0의 차이인지... 제가 뭘 착각하고있는건지 모르겠습니다. 참고할만한게 있으면 말씀해주시면 고맙겠습니다. ^^ Text파일을 로드하는 함수입니다. Public Function FileLoad(ByVal strLocalFullPath As String, ByVal Encoding As String) As String Dim objStrm As New ADODB.Stream Try With objStrm .Type = ADODB.StreamTypeEnum.adTypeText .Charset = Encoding .Open() .LoadFromFile(strLocalFullPath) End With FileLoad = objStrm.ReadText Catch Er As Exception AppException("FileLoad", Er.Message) FileLoad = "" Finally objStrm.Close() objStrm = Nothing End Try End Function |
IP 주소: 211.192.178.113
|
전체 2 건의 댓글이 존재합니다.
송원석 |
그러시다면 MDAC 최신 버전을 설치해보시기 바랍니다. 그리고 그 결과를 다시 말씀주시기 바랍니다. 감사합니다. ^_^
|
2005-08-18 17:51 |
송원석 |
그리고 여담으로 파일을 로드하기 위해서라면 .NET 프레임워크에서 제공해주는 클래스들을 사용하는 것을 권해드립니다. 프로그래밍 언어는 .NET 으로 바꾸시고 내부의 코드는 ADO 구버전을 사용하신다면 뭔가 어색하지 않을까요? ^_^
|
2005-08-18 17:54 |
전체 276 건의 게시물,
12 페이지로 구성된
COM / COM+ by VB 6.0 게시판의
7 페이지입니다.
게시물 | ||||
---|---|---|---|---|
129 | 2005-10-17 | 5,793 | ||
128 | 2005-10-17 | 3,272 | ||
127 | 2005-09-27 | 4,187 | ||
126 | 2005-09-27 | 3,513 | ||
125 | 2005-09-12 | 3,367 | ||
124 | 2005-09-12 | 3,533 | ||
123 |
훈스 |
2005-09-09 | 1,067 | |
122 |
훈스 |
2005-08-29 | 644 | |
121 |
re: com+ 에서 트랩오류 [1] |
2005-08-30 | 3,413 | |
120 | 2005-08-26 | 4,452 | ||
119 | 2005-08-26 | 3,040 | ||
118 |
끄적 |
2005-08-22 | 831 | |
117 | 2005-08-22 | 3,052 | ||
116 |
끄적 |
2005-08-23 | 688 | |
115 | 2005-08-24 | 3,064 | ||
2005-08-18 | 5,754 | |||
112 | 2005-08-19 | 3,198 | ||
111 |
황태연 |
2005-08-16 | 846 | |
110 | 2005-08-17 | 3,388 | ||
109 | 2005-08-17 | 3,697 | ||
108 | 2005-08-17 | 3,046 | ||
107 |
인터넷 임시파일 실시간 복구 [2] |
2005-08-13 | 3,174 | |
106 | 2005-07-27 | 3,189 | ||
105 | 2005-07-26 | 3,041 | ||
104 | 2005-07-26 | 3,343 |