2011-06-28 22 views
0

に私は、WCFサービスに接続できませんでしたが、それはalsways私が手 これは、サービスファイルである「ウェイクロックをあきらめ、起動タイムアウトの有効期限が切れている!」:Androidの接続WCF

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<configSections> 
</configSections> 
<connectionStrings> 
...... 
</connectionStrings> 
<appSettings> 
    <add key="HO" value=""/> 
    <add key="AutoUpdatePath" value="E:\AutoUpdate"/> 
</appSettings> 
<system.serviceModel> 
<bindings> 
    <basicHttpBinding> 
    <binding name="NewBinding0" maxBufferSize="2000000" maxReceivedMessageSize="2000000"> 
     <readerQuotas maxStringContentLength="2000000" maxArrayLength="2000000" /> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="NewBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service behaviorConfiguration="NewBehavior" name="XONT.Common.Data.PDAServiceBLL.MyPDAService"> 
    <endpoint address="http://192.168.1.11:7979/mytService" binding="basicHttpBinding" 
     bindingConfiguration="NewBinding0" contract="My.Common.Data.PDAServiceBLL.MyPDAService"/> 
     <host> 
     <baseAddresses> 
      <add baseAddress="http://192.168.1.11:7979/mytService"/> 
     </baseAddresses> 
     </host> 
    </service> 
    </services> 
</system.serviceModel> 

この EDITのように私のアンドロイド呼び出し方法:Androidが

WCF usig KSOAP2を呼んでいる。ここ

これは私のC#のメソッドです:

namespace My.Common.Data.PDAServiceDAL 
    { 
    public class MyPDAServiceDAL 
    { 
    EcecutiveCode = ""; 
    sqlConnection = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; 
    } 
     public List<string> loadPassword_Executive(string strExec) 
     { 
      EcecutiveCode = strExec; 
      sqlCon = new SqlConnection(sqlConnection); 
      List<string> list = new List<string>(); 
      SqlCommand com; 
      SqlDataReader dr; 
      try 
      { 
       string sql = "select Password,BusinessUnit,PrimaryTerritoryCode,DefaultSalesWarehouse,DefaultSalesLocation from RD.Executive where ExecutiveCode = '" + strExec + "'"; 
       com = new SqlCommand(sql, sqlCon); 
       sqlCon.Open(); 
       dr = com.ExecuteReader(); 

       if (dr.Read()) 
       { 
        list.Add(dr[0].ToString()); 
        list.Add(dr[1].ToString()); 
        list.Add(dr[2].ToString()); 
        list.Add(dr[3].ToString()); 
        list.Add(dr[4].ToString()); 
       } 
      } 
      catch (Exception e) 
      { 
       WriteToLog(e); 
       throw e; 
      } 
      finally 
      { 
       sqlCon.Close(); 
       //dr.Close(); 
       //dr.Dispose(); 
      } 

      return list; 
     } 

とアクティビティに私は呼ば:

try { 
SoapObject result=soap(METHOD_NAME, SOAP_ACTION, NAMESPACE, APPURL);    
Log.w("log_tag",result.getPropertyCount()+ "=====" + result.getProperty(0).toString()); 
    } catch (IOException e) { 
e.printStackTrace(); 
    } catch (XmlPullParserException e) { 
e.printStackTrace(); 
} 

エラーがある: この**起動タイムアウトが与え、期限が切れているように私は、エラーメッセージが表示されました目覚まし時計!

** 編集:我々は時間を増やすことができますどのように ?助けてください

ありがとうございます。

答えて

0

HTTPヘッダーまたは本文なしで空のPOST要求を送信しています。基本的なHTTPバインディングでは、呼び出された操作を決定するために使用されるSOAPアクションを持つ有効なSOAP要求が必要です。とにかく私はタイムアウトの代わりにあなたのいくつかのエラーを与える必要がありますと思う。あなたは少なくともあなたのアンドロイドデバイスからこれを開くことができますか:http://192.168.1.11:7979/mytService?wsdl

すべてのSOAP通信を手動で行うことは非常に複雑です。 SOAPサービスの利用に役立つライブラリを使用する必要があります - kSoap2を確認してください。

+0

ありがとうございました。私はこれと一緒に試みたhttp://192.168.1.11:7979/mytService?wsdlまだ私は同じエラーが発生しています。 –

+0

あなたのサービスが実行されていないか、あなたのAndroidデバイスがサービスをホストしているコンピュータに接続できません。 –

+0

私はC#WCFのfamilerではありません。それはIISサーバー上で実行されていません.Windowsコンポーネントです。彼らは私がアンドロイドにデータをプッシュする必要があることを介してWCFを与えました。サービスが実行されています。私はサーバー内で実行せずにC#WCFを知りたいですか? –