2009-11-17 3 views
1

나는 asmx (단순 웹 서비스)에서 제대로 작동하려고했지만 WCf에서는 다른 것을해야 할 필요가있다.WCF + WebClient + Powershell

WCF 서비스에 대해서도 동일한 오류 메시지가 나타날 수 있습니까? 방금 ​​.net에서 Simple WCF 서비스를 만들고 액세스를 시도했습니다. 그러나 성공하지 못했습니다.

오류 :

$Url = "http://localhost:4637/WCFService2/Service.svc" 

$webclient = new-object System.Net.WebClient 

$soapMessage = @" 
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/"> 
    <soap:Header/> 
    <soap:Body> 
     <tem:GetData> 
     <!--Optional:--> 
     <tem:value>hji</tem:value> 
     </tem:GetData> 
    </soap:Body> 
</soap:Envelope> 
"@ 
$webclient.headers.Add("SOAPAction","http://localhost:4637/WCFService2/Service.svc/GetData") 
$webclient.headers.Add("Content-Type", "text/xml; charset=utf-8") 

$result = ([XML]$webclient.UploadString($Url, $soapMessage))#.envelope.body.GetWeatherByPlaceNameResponse.GetWeatherByPlaceNameResult 

$result 
+0

실제 오류를 표시 할 수 있다면 유용 할 것입니다. 내 초기 추측은 당신의 서비스가 인증 된 호출을 기대하고 PS 클라이언트 코드가 unauth 호출을 할 때 호출이 실패한 것입니다. –

+0

오류 415가 발생합니다. –

+0

전체 소스 코드가 포함 된 최종 솔루션? – Kiquenet

답변

1

당신이 정말로 수동으로 SOAP 패킷을 작성하고 그것을 보내시겠습니까? 그렇지 않은 경우 PowerShell 2.0을 실행 중이라고 가정 할 때 New-WebServiceProxy에서 Get-Help를 수행하십시오. 이 cmdlet은 직접 프로그래밍 할 수있는 프록시 개체를 만듭니다.

+0

나는 New-WebServiceProxy를 사용하여 프록시를 얻을 수 있었지만, 다른 서비스에서 생성 된 LoginToken을 헤더 나 쿠키로 전달하여 서비스 메소드에 액세스하는 방법을 알아 냈다. 그래서 이제는 현재이 인증 토큰 (Encrtpted token)을 어떻게 서비스에 전달할 것인가가 가장 중요합니다. 내 토큰은 "LogCert = 534635336bsdvshsg"와 같습니다. SOAP UI의 경우 헤더로 쿠키로 전달합니다. –

+0

Execute $ proxy | Get-Member를 사용하여 보안 토큰 설정과 관련된 구성원이 있는지 확인하십시오. –

+0

메소드를 얻지 만 헤더에 보안 토큰을 전달하는 데 필요한 메소드에 대한 응답을 얻으려고합니다. 그래서 New-WebServiceProxy를 사용할 때 헤더를 어떻게 통과 할 것인가? –