Monday, October 19, 2015

Epias webservisine C# client'dan erişim

Epias servisleri Java ile yazılmış ve bu servislere C# ile doğrudan erişirken sıkıntı yaşanıyor.
Benim yaptığım adımlar şu şekilde.

1. Epias'ın test sistemi olan  http://95.0.37.186/dgpys/services/EVDServis?wsdl adresinden WSDL dosyasını indirin. Bunu mesela EVDServis.wsdl olarak kaydedin.
2. Bu WSDL'in en sonundaki URL farklı bir yeri gösteriyor olabilir, onu düzeltin
   En son satırlar şu şekilde olmalı

  <wsdl:service name="EVDServis">
    <wsdl:port name="EVDServisSOAP11port_http" binding="dgp:EVDServisSOAP11Binding">
      <soap:address location="http://95.0.37.186/dgpys/services/EVDServis"/>
    </wsdl:port>
    <wsdl:port name="EVDServisSOAP12port_http" binding="dgp:EVDServisSOAP12Binding">
      <soap12:address location="http://95.0.37.186/dgpys/services/EVDServis"/>
    </wsdl:port>
  </wsdl:service>

3. Command prompt açıp aşağıdaki komutu çalıştırın.

    svcutil EVDServis.wsdl /wrapped

   SVCutil'i bulamazsa çalıştırmadan önce şu satırı path'e ekleyin. (Visual Studio 2013 kullandığınızı varsayıyorum, farklı bir versiyon kullanıyorsanız, svcutil'in yerini bulup PATH'i ona göre editleyin)
  set path=%path%;"c:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools"

4. EVDServis.cs isimde bir dosya oluşacak. Bu dosyayı .Net projenize ekleyin

5. EVDServis.cs dosyasını açın ve StringValue[][] şeklindeki kısımları silip StringValue[] yapın

6. Client'dan bir login çağırmayı deneyin, dönen nesne null ise, şu değişiklikleri yapın.
   EVDServis.cs dosyasını açın,
 
Aşağıdaki satırı bulun, kırmızı ile işaretli kısmı silin. Yani Namespace="" (boş string) olsun.

public partial class loginResponse
{
    
    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://ws.dgpys.deloitte.com", Order=0)]
    public LoginReport LoginReport;
    
    public loginResponse()
    {
    }
    
    public loginResponse(LoginReport LoginReport)
    {
        this.LoginReport = LoginReport;
    }
}

7. Login'i deneyin, başarılı ise bunu kullanmak istediğiniz bütün methodların Response class'ları için yapmalısınız.

Kolay gelsin

Wednesday, May 27, 2015

Visual webgui visual studio click twice problem

When I first run a VWG application within visual studio, sometimes my first events are not fired. For example I click a button, the form tries to load itself. This happens only on first run. I disable "Just my code" debugger option in Visual Studio nad problem is fixed.

Sunday, March 15, 2015

sql server 2005 701 insufficient memory error

We receive 701 insufficient memory error every 2-3 days. Memory clerk report gives no clue. I've found the problem was related to Database Mail. Open your management studio and check for Database mail logs. If there's any problem with the configuration of one of the mail definitions like a changed SMTP ip etc, these errors are causing a memory leak. Fix the configuration and problem is solved.