2010-11-15 23 views
6

.NET'ten WCF aracılığıyla bir SAP Web Hizmeti'ni kullanmaya çalışıyorum. Proxy'yi oluşturdum ve app.config dosyasını yapılandırdım. ZTestRFC SAP yöntemi bir giriş dizesi kabul eden bir çok basit fonksiyondur.NET üzerinden WCF üzerinden SAP Web Hizmeti

WebServiceSAP.ZTEST_RFCClient myWCFService = new WebServiceSAP.ZTEST_RFCClient("MyEndPoint"); 

myWCFService.ClientCredentials.UserName.UserName = "<UserName>"; 
myWCFService.ClientCredentials.UserName.Password = "<Password>"; 

WebServiceSAP.ZTestRfc parameter = new WebServiceSAP.ZTestRfc(); 
parameter.TestInput = "This is a simple test"; 

WebServiceSAP.ZTestRfcResponse response = myWCFService.ZTestRfc(parameter); 

Console.WriteLine(reponse.TestOutput); 
Console.ReadLine();    

ve çıkışlar: Burada

benim test kodu ben ZTestRFC yöntemini çağırdığınızda, ben bir null var "Result: <the input string>"

değişken cevapta değer. Ancak SOAP mesajları iyi görünüyor.

SABUN İsteği

<MessageLogTraceRecord> 
<HttpRequest xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace"> 
<Method>POST</Method> 
<QueryString></QueryString> 
<WebHeaders> 
<VsDebuggerCausalityData>uIDPoxJmI5NcDatNiPM/wFAr52kAAAAAtqHAVnNWjEeMpMExOyr/vN7OXwCJZltNnikldpg5migACQAA</VsDebuggerCausalityData> 
</WebHeaders> 
</HttpRequest> 
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
<s:Header> 
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">urn:sap-com:document:sap:soap:functions:mc-style:ZTEST_RFC:ZTestRfcRequest</Action> 
</s:Header> 
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<ZTestRfc xmlns="urn:sap-com:document:sap:soap:functions:mc-style"> 
<TestInput xmlns="">This is a simple test</TestInput> 
</ZTestRfc> 
</s:Body> 
</s:Envelope> 
</MessageLogTraceRecord> 

SABUN Tepki

<MessageLogTraceRecord> 
<HttpResponse xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace"> 
<StatusCode>OK</StatusCode> 
<StatusDescription>OK</StatusDescription> 
<WebHeaders> 
<Content-Length>359</Content-Length> 
<Content-Type>text/xml; charset=utf-8</Content-Type> 
<Set-Cookie>MYSAPSSO2=AjExMDABAAxQMDEwMDA1MSAgICACAAMwNDADAAhEMTEgICAgIAQADDIwMTAxMTEwMTIwOQUABAAAAAgGAAFYCQABU%2f8A9jCB8wYJKoZIhvcNAQcCoIHlMIHiAgEBMQswCQYFKw4DAhoFADALBgkqhkiG9w0BBwExgcIwgb8CAQEwEzAOMQwwCgYDVQQDEwNQMTECAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTEwMTExMDEyMDk0OFowIwYJKoZIhvcNAQkEMRYEFJC%2fNFLVBnu1ZAodWTlPApEs8sApMAkGByqGSM44BAMEMDAuAhUBS844BOB%2f8NgEGuepMgLaKbVEGGUCFQFLs6HiI%21BWT1MejMqvABd3%2fJFVMw%3d%3d; path=/; domain=.<domain ... ></Set-Cookie> 
<Server>SAP NetWeaver Application Server/ABAP 700</Server> 
</WebHeaders> 
</HttpResponse> 
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"></s:Header> 
<SOAP-ENV:Body> 
<rfc:ZTestRfcResult xmlns:rfc="urn:sap-com:document:sap:soap:functions:mc-style"> 
<TestOutput xmlns="">Result:</TestOutput> 
</rfc:ZTestRfcResult> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 
</MessageLogTraceRecord> 

Ben oluyor ne olabilir bilmiyorum. Herhangi bir fikir? peşin

cevap

3

Offhand içinde

sayesinde, sen vekil oluştururken benziyor (BTW, bunu yapmak? kullandı hangi teknik), SAP parametre ve tepki bazı ad olacağını .NET söyledi ancak boş parametrede ("") parametreyi gönderiyorsunuz. Bu nedenle SAP hizmeti "Sonuç:" döndürüyor olabilir. Proxy'niz, TestOutput öğesinin farklı bir ad alanında olmasını beklediği için boş bir yanıt alıyor olabilirsiniz.

Oluşturulan proxy sınıflarına bakın ve hangi adların beklendiğini görün.

+0

Cevabınız için teşekkürler John. Proxy sınıflarını oluşturmak için VS2008 kullanmıştım. Proxy'de tanımlanan ad alanlarını kontrol ettim, ancak şu anda başarılı olmadım: _ (Size geri bildirim vereceğim – Javier

+0

@Javier: "Web Referansı Ekle", "Hizmet Referansı Ekle" yi veya ? –

+0

wsdl URL'si ile hizmet başvurusu ekle'yi kullandım Teşekkürler – Javier

İlgili konular