2009-06-12 4 views
0

좋아, 간단한 상황 : 나는 SOAP 웹 서비스에 연결하는 간단한 콘솔 애플리케이션을 작성하고있다. SOAP 서비스 참조를 가져 왔고 결과적으로 내 응용 프로그램에는 app.config 파일에 기본 끝점 빌드가 있습니다.C# SOAP with custom URL

그러나 웹 서비스는 여러 서버에서 실행할 수 있으며 적절한 웹 서비스의 URL은 내 응용 프로그램의 명령 줄 매개 변수를 통해 전달됩니다. URL을 읽을 수는 있지만 웹 서비스를이 맞춤 URL에 어떻게 연결합니까?

(그것은 내 의견으로는, 매우 간단합니다. 그것은 내가 내려다 보이는 해요 뭔가.)

+0

좋아, 지금 정말 짜증나. URL 뒤에 "? AspxAutoDetectCookieSupport = 1"을 추가하면 웹 서비스 만 작동한다는 것을 알게되었습니다 ... –

+0

밝혀 졌을 때, 나는 약간의 문제를 간과했습니다. Jon이 언급 한 SoapHttpClientProtocol을 사용하기 위해 클라이언트를 다시 작성했습니다. 그것은 여전히 ​​동일한 문제가있어서 서버 URL 자체를 확인하기로 결정했습니다. 서버가 정상적으로 보이지만 IE는 URL에 추가 옵션을 추가했습니다. 때로는 두 가지 오류로 인해 내용이 매우 명확하지 않을 수 있습니다. –

답변

3

글쎄, .NET 때때로 아주 쓸모없는 오류 메시지를 제공 할 수

+2

우리 모두는 이러한 실수를 저지르고 있으며, 이것은 내가 만든 허풍꾼 들보 다 더 이상 없습니다. ; -> –

5

SoapHttpClientProtocol에서 파생 자동 생성 된 클래스를 사용합니까? 그렇다면 클래스의 인스턴스를 만들 때 Url 속성을 설정하기 만하면됩니다.

Namespace.ClassName nwe = new Namespace.ClassName(); 
nwe.Url = "http://localhost/MyURL/site.asmx"; 
+0

"서비스 참조 추가 ..."및 마우스를 선택하여 참조를 마우스 오른쪽 버튼으로 클릭했습니다! 자동 코드. 내가 볼 수있는 한 SoapHttpClientProtocol에서 파생 된 것은 아닙니다. –

+0

좋아요, WCF를 사용하고 있습니다. 의심 스럽습니다. 다른 속성이 될 것입니다. –

+0

사실, SOAP 클래스의 생성자를 바인딩 이름과 사용자 정의 URL로 호출하는 것입니다. 바인딩의 이름은 SOAP 끝점이 정의 된 app.config에서 찾을 수 있습니다. –

2

존은 같이 URL을 설정, 말했듯이. IIS에서이 서비스는 자동 감지 쿠키 모드로 구성되었습니다. 결과적으로 URL에 "? AspxAutoDetectCookieSupport = 1"을 추가해야했습니다. 그게 문제를 해결할 수 있지만 IIS 콘솔로 이동하여 서비스의 속성을 열고 ASP.NET 탭 페이지로 이동 한 다음 "구성 편집"단추를 클릭하고 "상태 관리"를 클릭하면됩니다. 새로 화면을 팝업하고 "자동 감지"이외의 것으로 "쿡리스 모드"를 변경하십시오 ...

실례합니다. 멍청한 오류. 이것 때문에 몇 번 머리에 맞을 것입니다. ;-)

+0

유용한 정보. 그러나이 오류는 서버 측에서 발생했습니다. :-) –

+0

코멘트를 설명해 주시겠습니까? 매우 명확하지 않습니다. –

+0

(특히, 서버에서 오류가 발생했다면 질문에 언급 한 것이 좋았을 것입니다. 현재 질문은 클라이언트가 다른 클라이언트와 통신하도록 구성하는 방법을 묻는 것처럼 보입니다. URL ...) –