문제

제 3 자 DLL을 감싸는 내 어셈블리 좋아 내 Windows 테스트 하네스 앱에서 또한 디버그 모드 (2008 Visual Studio Development Server)에서 스폰 될 때 웹 서비스에서 잘 작동합니다! 그러나 로컬 IIS 7 웹 서버에서 실행될 때 앱은 항상 충돌합니다. 로컬 IIS 서버에서 실행할 때 이벤트 로그의 충돌 세부 사항은 다음과 같습니다.

Faulting Application W3wp.exe, 버전 7.0.6001.18000, 타임 스탬프 0x47919413, Faulting Module NTDLL.DLL, 버전 6.0.6001.18000, 타임 스탬프 0x4791A783, 예외 코드 0xc0000374, 오류 오프트 0x000AADA3, Process ID 0X903490.

토론 : 나는 타사 (FirstData의 LinkpointTransaction.dll)에서 .NET DLL 주위에 래퍼를 썼고, 그 래퍼를 참조하는 다른 어셈블리를 썼습니다. 코드가 실행됨에 따라 타사에 대한 호출 LinkPointTransaction.LinkPointTxn.Send() 인터넷을 통한 FirstData로 성공적으로 거래를 보내지 만 내 응용 프로그램은 w3wp.exe 어딘가에 충돌합니다. ~ 동안 그 전화는 다음 줄에 닿기 전에. 내가 볼 수있는 관리 된 예외를 던지지 않습니다. 그것은 단지 충돌합니다. IIS7을 제외하고 내 기계의 모든 곳에서 잘 작동합니다.

64 비트 Vista Home Premium (IIS7)을 실행하고 있지만 IIS에서 32 비트 앱을 활성화 하고이 웹 서비스를 위해 별도의 앱 풀을 만들었으며 모든 어셈블리를 X86으로 강요했습니다. 네트워크 서비스 대신 관리자 권한으로 사용자 계정 아래에서 앱 풀을 실행하려고 시도했습니다. UAC가 꺼져 있습니다. 통합 및 고전 모드를 시도했습니다. LinkPointTransaction.dll이 FirstData와 통신하는 데 사용하는 로컬 방화벽에서 TCP/IP 포트를 명시 적으로 열었습니다. 나는 심지어 방화벽을 닫았다 (라우터 뒤).

내가 나열한이 해결 방법을 사용하면 언제나 Windows 앱과 VS Development Server의 웹 서비스에서도 작동하지만 절대 로컬 IIS 서버에서 작동합니다.

IIS 웹 사이트의 AppPool은 클래식 모드입니다. (Gidon에 대한 응답으로)

도움이 되었습니까?

해결책

나는 이것이 더 이상 프로그래밍 질문이라고 생각하지 않으므로 나는 그것을 '대답'하고있다.

WindBG를 사용하여 공급 업체가 제공 한 DLL로 추적했습니다. 앱이 충돌하면 DLL이 메모리를 제거하는 방식과 관련된 문제처럼 보입니다. 통화 스택은 DLL에서 메모리 무료 작동, 커널에서 "힙 프리"작업, NTDLL에서의 "무료 힙"작업 및 후속 "보고서 힙 실패"(및 RTLREPORTCRITICALFAILURE)를 보여줍니다. 모든 것.

나는 여전히 Windows Forms 앱과 IIS 6에서 작동하는 이유를 이해하지 못하지만 IIS 7에서는 작동하지 않습니다. 그러나 이것은 '프로그래밍'질문보다 플랫폼 질문이되었습니다. 게다가, 아마도 공급 업체의 책임 일 것입니다.

업데이트: 공급 업체와 함께 기술 지원 티켓을 제출 한 후 이틀 이내에, 그들은 regsvr32에 등록하는 COM 객체를 사용하는 업데이트 된 통합 DLL 세트를 제공했으며 WOW64 디렉토리에 등록하면 IIS7 64 비트에서 작동합니다. . 첫 번째 데이터 기술 지원을 위해!

다른 팁

DLL에 대한 첫 번째 데이터를 요청하고 IIS7/.NET 4/WIN 2008 64 비트에서 실행할 수 있습니다. 이것은 그들의 반응이었습니다.

First Data Global Gateway에 관한 최근 문의에 감사드립니다. WebService API는 DLL 파일 (LinkPointTransaction.dll, lpicom_6_.dll)이 64 비트 서버와 함께 작동하도록 업데이트되지 않으므로 IIS 7에서 실행되는 64 비트 머신에 대한 현재 솔루션입니다. WebService API는 클라이언트 인증서를 설치하고 SOAP 요청을 통해 거래를 보내야합니다. WebService API에 대한 추가 정보는 다음에 있습니다 http://www.firstdata.com/downloads/marketing-merchant/fdgg-web-service-api-v4.0.pdf.

추가 설명이나 질문이 필요한 경우 아래 전화 번호를 통해 지원 데스크에 문의하십시오. API 지원 데스크 시간은 오전 9 시부 터 오후 6시 EST Mon-Fri입니다.

이것은 미래에 비슷한 정보를 찾는 다른 사람들에게 도움이 될 것입니다.

웹 사이트는 IIS7에서 어떻게 구성됩니까? 통합 모드에서 실행중인 경우 클래식 모드로 전환합니다. 보다 IIS 7.0의 통합 모드에서 실행되는 ASP.NET 2.0 응용 프로그램의 변경 사항 중단

나는 매우 비슷한 문제를 겪었고, 며칠 동안 엉망이 된 후에, 나는 mstest에서 같은 코드를 반복해서 실행하면 때로는 실패하고 테스트 프로세스가 완전히 충돌한다는 것을 깨닫게되었습니다. 좋아.

정말 이상한 점은 MSTEST를 디버깅 할 때 가장 자주 발생하지만 테스트 방법을 클릭하면 기본 ButtonBar에서 "현재 컨텍스트의 디버그 테스트"를 클릭하면 거의 항상 실패합니다. 대신 "테스트 결과"창에서 "디버그"를 클릭하여 테스트를 실행하면 거의 항상 올바르게 전달됩니다.

디버그 모드에서 실행되지 않지만 때로는 여전히 실패하면 거의 항상 올바르게 작동합니다. 나는 2 개의 다른 VisualStudio 2010 인스턴스에서 2 개의 다른 프로젝트 사이에서 정확히 동일한 코드를 복사/pasting하는 한, 그 중 하나에서는 코드가 올바르게 실행되며 다른 코드는 실패합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top