DElphi Web servis server yaptiğım bazı fonksiyonlar C# client te calışmıyor.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

DElphi Web servis server yaptiğım bazı fonksiyonlar C# client te calışmıyor.

Mesaj gönderen ercan_elo_bil »

merhaba,

XE6 Delphi de basit bir web servis hazırladım(file->new->other->webservices-> SoapServer Application) CGI stand-alone executable seceneğinden
servis name =Deneme ve ganerate sample methods diğerek örnek metodlar hazırlandı.
oluşan exe yide IIS e dahil edil web servisi calıştırdım. Delphide de wsdl import ile ilgili tüm fonksiyonlar sorunsuz çalıştı.

c# web servis client oluşturdum wsdl import(add --> service referans url ekledim go..) integer, string gibi tekil dönüşü sağlayan fonksiyonlar çalıştı fakat bir türlü class(TRemote) dönen fonksiyon çalışmadı. c# hata verdi
Hata:
"soap error in deserializing body of reply message for operation..."
daha sonra delphi web service
InvRegistry.RegisterInvokeOptions(TypeInfo(ideneme), ioDocument); ekledim hata gitti fakat bu seferde fonksiyonlardan dönen bütün değerler empty oldu
bu problemi nasıl çözerim
bu konda yardımcı olamanızı rica ederim

c# kod:

Kod: Tümünü seç

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TeraBonusTest.Tera;
using System.Web;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                using (var client = new DenemeWsClient())            
                {
                    
         
                    richTextBox1.AppendText(client.TestEchoString("iyi") + Environment.NewLine);
                    var bonus =client.Deneme(12, "test");
                    richTextBox1.AppendText(bonus.Ad + Environment.NewLine);
                    richTextBox1.AppendText(bonus.No + Environment.NewLine);
                    
                }
            }
            catch (Exception ex)
            {
                richTextBox1.AppendText("Err:" + ex.Message + Environment.NewLine);
                
            }
              

        }
    }
}
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: DElphi Web servis server yaptiğım bazı fonksiyonlar C# client te calışmıyor.

Mesaj gönderen vkamadan »

Merhabalar ,
TRemote yerine TRemotable sınıfını kullanmalısınız.
iyi çalışamalar.
Volkan KAMADAN
www.polisoft.com.tr
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

Re: DElphi Web servis server yaptiğım bazı fonksiyonlar C# client te calışmıyor.

Mesaj gönderen ercan_elo_bil »

vkamadan yazdı:Merhabalar ,
TRemote yerine TRemotable sınıfını kullanmalısınız.
iyi çalışamalar.
merhaba

yazım yanlışı olmuş zaten TRemotable class ını kullanıyorum.
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: DElphi Web servis server yaptiğım bazı fonksiyonlar C# client te calışmıyor.

Mesaj gönderen vkamadan »

Merhabalar ,
hali hazırda c# ta kullanılan SOAP Server uygulamamın önemli bir parçası olan HTTPSoapPascalInvoker ın Converter.Options kısmına dikkat etmenizi öneririm

Kod: Tümünü seç

 object HTTPSoapPascalInvoker1: THTTPSoapPascalInvoker
    BeforeDispatchEvent = HTTPSoapPascalInvoker1BeforeDispatchEvent
    AfterDispatchEvent = HTTPSoapPascalInvoker1AfterDispatchEvent
    Converter.Options = [soSendMultiRefObj, soTryAllSchema, soRootRefNodesToBody, soUTF8InHeader, soUTF8EncodeXML]
    Left = 60
    Top = 67
  end
Volkan KAMADAN
www.polisoft.com.tr
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

Re: DElphi Web servis server yaptiğım bazı fonksiyonlar C# client te calışmıyor.

Mesaj gönderen ercan_elo_bil »

merhaba
ilgili sorunu uzun araştırmalar sonucu çözdüm .
RegisterSerializeOptions
ile igli imiş

kolay gelsin
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: DElphi Web servis server yaptiğım bazı fonksiyonlar C# client te calışmıyor.

Mesaj gönderen vkamadan »

ercan_elo_bil yazdı:merhaba
ilgili sorunu uzun araştırmalar sonucu çözdüm .
RegisterSerializeOptions
ile igli imiş

kolay gelsin
Merhabalar ,
Tam olarak nasıl bir yol izlediniz ?
Volkan KAMADAN
www.polisoft.com.tr
Cevapla