2011-07-07 7 views

答えて

0

HttpWebRequestを使用してサービスを呼び出すことができます。以下の例: -

private static XDocument CallSoapServiceInternal(string uri, string soapAction, string contentType, XDocument reqXml) 
{ 
    var req = (HttpWebRequest)WebRequest.Create(uri); 
    req.ContentType = contentType; 
    req.Method = "POST"; 
    req.Headers.Add("SOAPAction", soapAction); 
    req.Credentials = CredentialCache.DefaultCredentials; 
    req.Timeout = 20000; 
    //req.Timeout = System.Threading.Timeout.Infinite; 

    using (var reqStream = req.GetRequestStream()) 
    { 
     reqXml.Save(reqStream); 
    } 

    string respStr; 

    try 
    { 
     using (var resp = (HttpWebResponse)req.GetResponse()) 
     { 
      using (var rdr = new StreamReader(resp.GetResponseStream())) 
      { 
       respStr = rdr.ReadToEnd(); 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     throw new Exception("Error getting service response.", ex); 
    } 

    Console.WriteLine(respStr); 
    Assert.IsTrue(respStr.Length > 0, "Nothing returned"); 

    var respXml = XDocument.Parse(respStr); 
    return respXml; 
} 
+0

ありがとうございます。それが私が探しているものです。 – VJAI

+0

System.ServiceModelにSoapメッセージをフレーム化/送信するクラスがありますか? – VJAI

+0

これが見つかりました。SoapSenderおよびSoapReceiverクラスを使用してSOAPメッセージを送受信します。http://msdn.microsoft.com/en-us/library/ms824662.aspx – VJAI

0

簡単な答え:ません

WCFは、クライアントと呼ばれているサービスとの間のプロキシを持つのは非常に基本的な原理に基づいています。あなたはこれを "回避する"ことはできません。

サービス参照の追加を使用してプロキシを作成するか、コードで作成するかは自由ですが、プロキシが必要です。

0

これは、ダイナミックプロキシ生成に興味がある場合に表示されます。

このarticleをご覧ください。いくつかの点について議論する必要があるかもしれませんが、その考え方はここにあります。

This questionも役に立ちます。

+0

あなたは正しいです。私は実行時にプロキシを作成しようとしていました。リンクありがとう。 – VJAI

関連する問題