2012-09-26 113 views
1

我有在服務器下面的web.config WCF服務。WCF服務方法調用兩次

<?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
    <connectionStrings> 
    <add name="myconnection" connectionString="myconnectionstr"/> 
    </connectionStrings> 
    <system.serviceModel> 
      <services> 
      <service behaviorConfiguration="PSWebServis.PServisBehavior" name="PSWebServis.PServis"> 
        <endpoint address="" binding="wsHttpBinding" contract="PSWebServis.IPServis" /> 
       <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
       <host> 
         <baseAddresses> 
          <add baseAddress="http://localhost:8000/" /> 
       </baseAddresses> 
      </host> 
     </service> 
    </services> 
     <behaviors> 
      <serviceBehaviors>  
       <behavior name="PSWebServis.PServisBehavior"> 
         <serviceMetadata httpGetEnabled="true" /> 
        <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 

,這是在客戶端的web.config相關的部分。

<system.serviceModel> 
<bindings> 
    <wsHttpBinding> 
    <binding name="WSHttpBinding_IPServis" /> 
    </wsHttpBinding> 
</bindings> 
<client> 
    <endpoint address="http://sunucu:8000/PServis.svc" binding="wsHttpBinding" 
    bindingConfiguration="WSHttpBinding_IPServis" contract="PSWebServis.IPServis" 
    name="WSHttpBinding_IPServis"> 
    <identity> 
     <servicePrincipalName value="host/SUNUCU" /> 
    </identity> 
    </endpoint> 
</client> 

這裏是我的界面的一部分,在服務

[ServiceContract] 
public interface IPServis 
{ 
    [OperationContract] 
    string InsertMusteri(MusterilerModel musteri); 
} 

和服務類相關的部分。

public class PServis : IPServis 
{ 
    public string InsertMusteri(MusterilerModel musteri) 
    { 
     if (musteri != null) 
     { 

      DataTable dtSonuc = new DataTable(); 
      SqlCommand command = new SqlCommand("InsertMusteriModel", connection); 
      command.CommandType = CommandType.StoredProcedure; 
      command.Parameters.AddWithValue("@musteriTablo", musteri.KayitTablosu); 
      command.Parameters.AddWithValue("@telefonTablo", musteri.TelefonKayit); 
      command.Parameters.AddWithValue("@adresTablo", musteri.AdresKayit); 
      connection.Open(); 
      command.ExecuteNonQuery(); 
      SqlDataAdapter adapter = new SqlDataAdapter(command); 

      adapter.Fill(dtSonuc); 
      connection.Close(); 

      return dtSonuc.Rows[0]["IslemDurum"].ToString(); 
     } 

     return "Başarısız"; 
    } 
} 

我MusterilerModel類:

[DataContract] 
public class MusterilerModel 
{ 
    [DataMember(Order=0)] 
    public int MusteriID { set; get; } 

    [DataMember(Order = 1)] 
    public string Ad { set; get; } 

    [DataMember(Order = 2)] 
    public string Soyad { set; get; } 

    [DataMember(Order=3)] 
    public string KullaniciAdi { set; get; } 

    [DataMember(Order = 4)] 
    public string Email { set; get; } 

    [DataMember(Order = 5)] 
    public DateTime DogumTarihi { set; get; } 

    [DataMember(Order=6)] 
    public string GrupAdi { set; get; } 

    [DataMember(Order=7)] 
    public int Renk { set; get; } 

    [DataMember(Order=8)] 
    public decimal Bakiye { set; get; } 

    [DataMember(Order=9)] 
    public string Adres { set; get; } 

    [DataMember(Order=10)] 
    public string AdresAciklamasi { set; get; } 

    [DataMember(Order=11)] 
    public string Firma { set; get; } 

    [DataMember(Order=12)] 
    public string VergiDairesi { set; get; } 

    [DataMember(Order=13)] 
    public string VergiNo { set; get; } 

    [DataMember(Order=14)] 
    public int BayiID { set; get; } 

    [DataMember(Order=15)] 
    public string Il { set; get; } 

    [DataMember(Order = 16)] 
    public string Ilce { set; get; } 

    [DataMember(Order = 17)] 
    public decimal YemekPara { get; set; } 

    [DataMember(Order=18)] 
    public string Sifre { set; get; } 

    [DataMember(Order=19)] 
    public int GrupID { set; get; } 

    [DataMember(Order=20)] 
    public string BayiAdi { set; get; } 

    [DataMember(Order=21)] 
    public int SehirID { set; get; } 

    [DataMember(Order=22)] 
    public int IlceID { set; get; } 

    [DataMember(Order=23)] 
    public DateTime EvlilikYilDonumu { set; get; } 

    [DataMember(Order=24)] 
    public DateTime KayitTarihi { set; get; } 

    [DataMember(Order=25)] 
    public string KayitEdenPersonel { set; get; } 

    [DataMember(Order=26)] 
    public int KayitEdenPersonelID { set; get; } 

    [DataMember(Order=27)] 
    public bool AktifMi { set; get; } 

    [DataMember(Order=28)] 
    public string Aciklama { set; get; } 

    [DataMember(Order=29)] 
    public string OzelKod { set; get; } 

    [DataMember(Order=30)] 
    public int SatisID { set; get; } 

    [DataMember(Order=31)] 
    public DataTable KayitTablosu { set; get; } 
    [DataMember(Order=32)] 
    public DataTable TelefonKayit { set; get; } 
    [DataMember(Order=33)] 
    public DataTable AdresKayit { set; get; } 
} 

當我嘗試使用InsertMusteri方法,有2條記錄在數據庫中。正如你所看到的,我把我的信息放入數據表併發送給服務。我檢查了,如果數據表有多個值,但這不是問題。我不知道問題在哪裏。

回答

2

評論這條線

command.ExecuteNonQuery(); 

並檢查它是否正常工作。 我認爲「填充」命令執行你的命令。

+1

非常感謝!我沒有注意到這一部分。這花了我幾天的時間來解決。我很感激。你救了我的命:D再次感謝。 – gesirdekatwork

+0

歡迎您的傢伙:) – Amir