게시판 본문 COM / COM+ by VB 6.0 - Read Only

웹용 dll에 대한 질문입니다....
작성자: zziuni
작성일시: 2005-08-18 17:47,  조회수: 5,547
강좌는 열심히 보고 있습니다만..
글쓰는건 또 오래간만이군요. ^^

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

re: 세션공유2에 이어서

송원석

2005-10-17 5,359
128

세션 공유2

정보문

2005-10-17 3,067
127

regsvr32 에 관한 문의입니다.

3일째고생

2005-09-27 3,974
126

re: regsvr32 에 관한 문의입니다.

송원석

2005-09-27 3,311
125

COM+에 몇 가지 질문있습니다.

ccia36

2005-09-12 3,167
124

re: COM+에 몇 가지 질문있습니다. [1]

송원석

2005-09-12 3,320
123

com+ 진짜 환장하겠어요... 되다 안되는건 어쩌죠 [1]

훈스

2005-09-09 1,067
122

com+ 에서 트랩오류

훈스

2005-08-29 644
121

re: com+ 에서 트랩오류 [1]

송원석

2005-08-30 3,197
120

C:\WINDOWS\Downloaded Program Files

정보문

2005-08-26 4,214
119

re: C:\WINDOWS\Downloaded Program Files

송원석

2005-08-26 2,827
118

ASP 상에서의 컴포넌트 사용시 엑세스 오류

끄적

2005-08-22 831
117

re: ASP 상에서의 컴포넌트 사용시 엑세스 오류

송원석

2005-08-22 2,855
116

re: ASP 상에서의 컴포넌트 사용시 엑세스 오류

끄적

2005-08-23 688
115

re: ASP 상에서의 컴포넌트 사용시 엑세스 오류

송원석

2005-08-24 2,836

웹용 dll에 대한 질문입니다.... [2]

zziuni

2005-08-18 5,547
112

re: 웹용 dll에 대한 질문입니다.... [1]

zziuni

2005-08-19 2,985
111

ocx에서 rds사용이 가능한가요?

황태연

2005-08-16 846
110

re: ocx에서 rds사용이 가능한가요?

송원석

2005-08-17 3,167
109

re: ocx에서 rds사용이 가능한가요?

황태연

2005-08-17 3,497
108

re: ocx에서 rds사용이 가능한가요?

송원석

2005-08-17 2,848
107

인터넷 임시파일 실시간 복구 [2]

정보문

2005-08-13 2,969
106

frame / iframe 의 id [2]

정보문

2005-07-27 2,984
105

dll을 등록하는 두가지 방법의 차이

초이스

2005-07-26 2,842
104

re: dll을 등록하는 두가지 방법의 차이

송원석

2005-07-26 3,140