Merhaba arkadaşlar,

.Net ile yazılmış localhost'da yayınladığım web servisi ile web servisini yayınladığım bilgisayarda kurulu olan SQL SERVER 2008 R2 veri tabanı ile nasıl bağlantı kurabilirim ? servis uygulamasını visual studio ile çalıştırıp denediğim zaman sql server ile bağlantıyı kurup işlemleri gerçekleştiriyorum ama aynı web servisini localhost'da yayınlayıp kullandığım zaman işlem yapamıyorum.Yapmak istediğim ise internet olmayan bir ortamda sadeece 1 bilgisayarda localhost'da yayınladığım web servisi araçılığı ile android cihazımdan sql server 'a bağlantı kurup işlemler yapmak.

Android cihazımdan web servislerine bağlantı noktasında herhangi bir sıkıntım yok sadece web servisi localdeki veritabanına bağlanmıyor

Kullanıdığım connectionString :

       data source=192.168.1.77;database=AndroidWS;integrated security=true;user id=AndroidWSKullanicisi;password=123456

soruldu: 29 Tem '12, 19:00

gokhanakgol's gravatar image

gokhanakgol
705687777
cevap kabul oranı: 30%

değiştirildi: 01 Kas '12, 07:54

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

Bir de web servisi adresini http://10.0.2.2/Android/KullaniciEkle.asmx şeklinde dener misin.

(31 Tem '12, 01:43) creseos creseos's gravatar image

Problemin database bağlantısından oldugundan emin olmak için servisin Soa ise SoapUi Restful ise RestClient gibi bir browser plugini ile servislerini deniyebilirmisin? Hatayı paylaşırsan daha iyi olur hocam.

permanent link

cevaplandı: 30 Tem '12, 01:09

Alp's gravatar image

Alp
873304447
cevap kabul oranı: 18%

değiştirildi: 01 Ağu '12, 04:12

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

Merhaba web servisindeki local host sorununu aştım web servisi artık localdeki veri tabanınada kayıt yapıyor.Android ile localhost'da yayınlanan bir web servisine bağlanmaya çalıştığım zaman uygulama direkt durduruldu diye hata verip kapanıyor bu sorunu nasıl aşabilirim ?

Kullandığım localhost web servisi adresi : http://127.0.0.1/Android/KullaniciEkle.asmx

Android uyguamasındaki kodlarım

-- Değişkenler

    private final String NAMESPACE = "http://127.0.0.1/";
private final String SOAP_ACTION = "http://127.0.0.1/KullaniciKaydet";
private final String METHOD_NAME = "KullaniciKaydet";
private final String URL = "http://127.0.0.1/Android/KullaniciEkle.asmx";

-- Method

       SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);

PropertyInfo prop1 = new PropertyInfo();
        prop1.setName("_kullaniciAdi");
        prop1.setValue("asd1");
        prop1.setType(String.class);
        Request.addProperty(prop1);

PropertyInfo prop2 = new PropertyInfo();
        prop2.setName("_sifre");
        prop2.setValue("asd2");
        prop1.setType(String.class);
        Request.addProperty(prop2);

SoapSerializationEnvelope see = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);
        see.dotNet = true;
        see.setOutputSoapObject(Request);

//AndroidHttpTransport aht = new AndroidHttpTransport(URL);

HttpTransportSE httpTransport = new HttpTransportSE(URL);

try {
            httpTransport.call(SOAP_ACTION, see);
            SoapPrimitive resultString = (SoapPrimitive) see.getResponse();
            tv.setText("Sonuc : " + resultString);
        } catch (Exception e) {
            tv.setText(e.getMessage());
        }
(30 Tem '12, 17:48) gokhanakgol gokhanakgol's gravatar image

Aldığın hatayı direk paylaşırsan daha rahat yardımcı olunur?

Comodo,kaspersky..v.s. anti-virüs programı engelliyor olabilir kapatıp denermisin daha önce başıma gelmişti.

(31 Tem '12, 01:03) Alp Alp's gravatar image

Merhaba antivirüs uygulamasını kapattım ip adresinide 10.0.2.2 yaptım bu sefer bağlantı sağlamaya çalıştığım zaman uygulama 10 saniye kadar donup kalıyor daha sonra zorla kapatılıyor diyor geriye string bir hata mesajı dönmediği için bende tam olarak anlayamıyorum neden hata verdiğini kod yapısında try-catch var.

Cihazda herhangi bir şekilde web servisine bağlanmak için izin vermem gerekiyormu herhangi bir ayarı varmıdır?

Uzak bir sunucuda barınan web servisine bağlandım herhangi bir sorun olmadan çalıştı.Sıkıntı localhost'daki web servisine bağlanmaya çalışırken oluşuyor.

HelloWorld method'unada bağlanmayı denedim oda aynı şekilde bekledikten sonra zorla kapanıyor.

(31 Tem '12, 17:45) gokhanakgol gokhanakgol's gravatar image

Peki Eklediğin Dll ye izin verdin mi ? Package explorerdan projene sağ tıklayıp Build Path > Configure Build Path Açılan pencerede yukarıdaki sekmelerden "Order And Export" a tıklayıp eklediğin dll lere izin vermen gerekiyor.

(01 Ağu '12, 01:26) creseos creseos's gravatar image

Merhaba

İzin verme ile ilgili bir işlem yapmamıştım nasıl yapılıyor tam olarakta bilmiyorum dediğin yollardan gittim Build Path > Configure Build Path > Order And Export

daha sonra proje eklediğim ksoap2 dosyası görünüyor ve yanında check var başkada herhangi bir seçenek yok izinle ilgili. yanındaki check'i tıkladım OK dedim ama değişen bir şey olmadı

Oluşan hatayı Toast ile mesaj verdiriyorum gelen uyarı şu şekilde : The operation timeout

Tam olarak yapmak istediğim ise şu : .Net de yazdığım bir web servisini localhost 'da yayınlayarak internet yokken local bilgisayarımdaki sql server 2008 r2 veri tabanına kayıt eklemek veya sorgulamak istiyorum.Web servisini locahost'da yayınladım denedim olması gerektiği gibi çalışıyor web servisi tarafında herhangi problem yok aslında sorun android cihazımdan web servisi ile bağlantı kurmaya çalıştığım zaman oluyor.Sql server tarafında bir tane kullanıcı oluşturdum veri tabanım için o kullanıcı ile bağlantı kuruyorum işlem anında android cihazın ağ bağlantıları kurulmuş oluyor zaten anyı android cihazdan uzaktaki bir web servisine bağlanmaya çalıştığım zaman herahangi bir problemle karşılaşmadım sağlıklı çalıştı sorun localhost'da yayınlanan web servisine bağlanmaya çalışırken çıktı

Web servisi için kullandığım kod yapısı :

[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. // [System.Web.Script.Services.ScriptService] public class KullaniciEkle : System.Web.Services.WebService {

    [WebMethod]
    public string KullaniciKaydet(string _kullaniciAdi, string _sifre)
    {
        try
        {
            string conStr = "data source=127.0.0.1;database=AndroidWS;integrated security=true;user id=AndroidWSKullanicisi;password=123456";

            SqlConnection conn = new SqlConnection(conStr);

            conn.Open();

            string sorgu = "INSERT INTO Kullanicilar (KullaniciAdi,Sifre) VALUES (@kullaniciAdi,@sifre)";

            SqlCommand cmd = new SqlCommand(sorgu, conn);
            cmd.Parameters.AddWithValue("@kullaniciAdi", _kullaniciAdi);
            cmd.Parameters.AddWithValue("@sifre", _sifre);

            cmd.ExecuteNonQuery();

            conn.Close();
            conn.Dispose();
            cmd.Dispose();
            return "Başarılı";
        }
        catch (Exception ex)
        {
            return ex.Message;

        }
    }
}

Android cihazımda kullandığım kod yapısı :

    private final String NAMESPACE = "http://tempuri.org/";
private final String SOAP_ACTION = "http://tempuri.org/KullaniciKaydet";
private final String METHOD_NAME = "KullaniciKaydet";
private final String URL = "http://10.0.2.2/Android/KullaniciEkle.asmx";

try {

        SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);

         Request.addProperty("_kullaniciAdi", "Gökhan");
         Request.addProperty("_sifre", "123");

        // PropertyInfo prop1 = new PropertyInfo();
        // prop1.setName("_kullaniciAdi");
        // prop1.setValue("asd1");
        // prop1.setType(String.class);
        // Request.addProperty(prop1);

        // PropertyInfo prop2 = new PropertyInfo();
        // prop2.setName("_sifre");
        // prop2.setValue("asd2");
        // prop1.setType(String.class);
        // Request.addProperty(prop2);

        SoapSerializationEnvelope see = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);
        see.dotNet = true;
        see.setOutputSoapObject(Request);

        AndroidHttpTransport aht = new AndroidHttpTransport(URL);

        // HttpTransportSE httpTransport = new HttpTransportSE(URL);

        try {
            aht.call(SOAP_ACTION, see);
            SoapPrimitive resultString = (SoapPrimitive) see.getResponse();
            tv.setText("Sonuc : " + resultString);
        } catch (Exception e) {
            Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
        }

    } catch (Exception e) {
        Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
    }
permanent link

cevaplandı: 01 Ağu '12, 16:04

gokhanakgol's gravatar image

gokhanakgol
705687777
cevap kabul oranı: 30%

Kodda hata olduğunu düşünüyorsan birde şu şekilde dene. Ben bununla ilgil bir örnek yapıp çalıştırmıştım

private final String NAMESPACE = "http://tempuri.org/";
private final String SOAP_ACTION = "http://tempuri.org/KullaniciKaydet";
private final String METHOD_NAME = "KullaniciKaydet";
private final String URL = "http://10.0.2.2/Android/KullaniciEkle.asmx";

Aşağısı İse:

    SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);

                     Request.addProperty("_kullaniciAdi", "Gökhan");
                     Request.addProperty("_sifre", "123");*/

                     SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                     soapEnvelope.dotNet = true;
                     soapEnvelope.setOutputSoapObject(Request);

                     HttpTransportSE aht = new HttpTransportSE(URL);

                     try {
                         aht.call(SOAP_ACTION, soapEnvelope);

                        SoapObject soapObjectResultRoot=(SoapObject) soapEnvelope.bodyIn;

                        SoapObject soapObjectGetProperty=(SoapObject) soapObjectResultRoot.getProperty("KullaniciKaydet");

///Buradan Sonra değiştir
                        SoapObject Tag1=(SoapObject) soapObjectGetProperty.getProperty("GeriDönenDeğerlerdenİlkininTagı"); //***Buraya Dikkat***(Sonucu alıyoruz buralarda)
                        SoapObject Tag2=(SoapObject) usergiris.getProperty("GeriDönenDeğerlerdenİlkininİlkitemininTagı");//***Buraya Dikkat***(Sonucu alıyoruz buralarda)
                        //Alt değerine(Taglara) gitmek için yukardaki şekilde tanıımla
                            //Değerlerini almak istiyorsan da aşağıdaki şekilde

                        String item1=Tag2.getProperty("tag1altitem1").toString();
                            String item2=Tag2.getProperty("tag1altitem2").toString();

                     } catch (Exception e) {
                     e.printStackTrace();
                     lblliste.setText("Hata " + e.getMessage());
                 }
permanent link

cevaplandı: 02 Ağu '12, 04:40

creseos's gravatar image

creseos
2.0k468187
cevap kabul oranı: 37%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×819
×90
×71

Soruldu: 29 Tem '12, 19:00

Görüntüleme: 4,386 kez

Son güncelleme: 01 Kas '12, 07:54

powered by BitNami OSQA