2009-09-30 5 views
2

PowerBuilder 10.5.2 샘플 웹 서비스 응용 프로그램을 실행하려고합니다. 작업 영역을 열어도 객체를 볼 수 있으며 응용 프로그램을 실행할 수도 있지만 서비스를 호출하려고하면 "잘못된 런타임 함수 참조"오류가 발생합니다.PowerBuilder 10.5 샘플 웹 서비스 클라이언트 응용 프로그램

  • PB 10.5.2
  • 닷넷

웹 검색은 웹 서비스의 일부 샘플에서 사용하는 것을 보여 2.0 SDK :

는 내가 모든 필요한 부품을 설치 한 생각 응용 프로그램이 작동하지 않지만 모든 이들이 있다고 상상할 수 없으므로 오류가 셋업이나 개체가 아닌 타사 서비스의 문제를 나타내는 것으로 보입니다.

작업 공간 목록과 Sybase 공유 객체 디렉토리에 pbwsclient105.pbd가 있습니다. 그러나 테스트로서 나는 대체 방법을 사용하여 .Net 웹 서비스 개체 (pbwsclient105.pbx에서 PB 확장을 가져옴으로써)에 PB 프록시를 설정하고 "유효하지 않은 DLL 오류"를 얻었습니다. 웹 서비스 라이브러리가 손상 되었습니까?

그 밖의 무엇이 누락 될 수 있습니까? 경로 설정? 잘못된 .Net 2.0 SDK 설치?

+0

마법사를 통해 새 웹 서비스에 대한 웹 서비스 프록시를 만들 수 있습니까? –

답변

2

* * * 편집 : 문제 해결 - 적어도 내 컴퓨터 (들) * * *

나는 here을 발견 스레드에서 큐했다 때 이러한 오류 파워 빌더와 무슨 일이 벌어지고 있는지 검사 시작 PBX를 가져 오는 동안과 샘플 응용 프로그램을 실행 한 경우 런타임 중에 모두 발생했습니다. thread에서

한 사람이 문제가 및 ssleay32.dll 않으면 LIBEAY32.dll 관련이 있다고 말했습니다. OpenSSL이이 구성 요소들에 적합하다는 것은 이번이 처음이 아닙니다. 하드 드라이브가 여러 응용 프로그램 폴더에 흩어져 있습니다. 이러한 DLL은 PBWSCLIENT105.PBX 확장을 가져올 때 또는 런타임에 연결된 PBD를 사용하는 응용 프로그램에 의해로드됩니다. 아니나 다를까, ProcMon를 사용하여, 나는 PB 폴더 구조에있는 동일한 DLL이 버전에 반대 ssleay32.dll 않으면 LIBEAY32.dll 및 가 SYSTEM32의 Windows \에서로드되었는지 확인 할 수 있었다. 분명히 이것은 문제입니다. 나는 System32에있는 두 DLL의 이름을 효과적으로 제거하고 PB를 해고 PBWSCLIENT105.PBX를 가져 와서 매력처럼 작동 시켰습니다.


PB 10.5 설치시 비슷한 문제가 있습니다.

---------- Import PB Extension:
Importing C:\Program Files\Sybase\Shared\PowerBuilder\pbwsclient105.pbx - Error: The file is not a valid dll or pbx file.
내가 처음에 문제가 파일이 손상 있다고라고 생각 ---------- Finished

는 등 그러나, 나는 깨끗한 컴퓨터에 PB 10.5를 설치 (다음 PBX 파일 가져 오기 나에게 오류 메시지를 제공합니다 실제로 VM) .Net 2.0 SDK와 함께 가져 오기가 완벽하게 작동했습니다. 또한 웹 서비스를 호출 할 수있었습니다.내 그룹의 모든 개발자는 자신의 컴퓨터에서 동일한 문제가 있지만 PB가 설치된 "깨끗한"컴퓨터 또는 VM (일부 다른 응용 프로그램)을 사용하는 경우 PBX 파일 가져 오기가 문제없이 작동합니다.

이 시점에서 나는 환경에서 문제의 원인을 찾아 내려고했지만 아직 수행하지 못했습니다. 필자가 주목 한 것처럼 흥미로운 점은 샘플 응용 프로그램을 열면 동일한 가져온 라이브러리가 있음을 알 수 있습니다. 그러나 런타임에 오류가 발생합니다. 이 모든 것은 실제로 환경 적으로 누락되거나 잘못 등록 된 것을 지적합니다. 따라서 VM을 사용할 수있는 능력이 있다면 임시 해결 방법으로 사용하는 것이 좋습니다.

내가 여기 추가 할 것은 한 가지 : Vista 또는 Windows 7을 VM으로 사용하는 경우 라이브러리 가져 오기가 제대로 작동하지만 .Net 웹 서비스 엔진을 사용하여 클라이언트 측 프록시를 생성 할 때 문제가 발생했습니다. . 마지막으로 백그라운드에서 SDK 도구 WSDL.exe가 .Net 클라이언트 측 프록시를 생성하기 위해 서비스 용 WSDL에 대해 실행 중임을 발견했습니다. Vista/Win7 User Access Control이 WSDL.EXE의 실행을 막고 있다고 밝혀졌습니다. PowerBuilder를 "관리자 권한으로"실행했으며 모든 것이 클라이언트 측 프록시 생성과 관련하여 예상대로 작동했습니다.

PBX 가져 오기가 작동하지 않는 이유가 무엇인지 발견하면 그에 대해 듣고 싶습니다.

+1

감사합니다 피터! 필자는 기능 요구 사항에 대한 다른 접근법을 사용했지만 여전히 PB로 작동하는 웹 서비스를 사용할 수있는 기능을 원합니다. 내가 알아 내면 알려주지. –

+0

버나드, 제발! 나는 똑같이 할 것이다. 우리가 웹 서비스 통합과 PB (및 다른 플랫폼에서의 응용 프로그램)를 얻는 다른 방법 중 하나는 SQL Server의 SQLCLR에있는 저장 프로 시저에서 웹 서비스 클라이언트를 래핑하는 것입니다. 기본적으로 프록시 역할을합니다. 너무 자랑 스럽다고 말할 수는 없지만 때로는 일을 끝내야 할 때가 있습니다. –

+0

피터, 너 락. 나는 당신이 "libeay32.dll"에 대해 말한 것의 절반을 (내가 그것을 찾을 때까지) 이해하지 못했다.하지만 그것을 바꾼 것은 그 트릭을했다. "DLL 지옥", 말처럼 간다. –

관련 문제