0

学校での私のプロジェクトでは、Java EEアプリと相互作用させるために、C#アプリでWCFを使用していくつかのSOAPWebサービスを作成する必要があります。

WCFでこれを行う方法を教えてくれるチュートリアルが見つかりません。私は何をすべきか?

4

3 に答える 3

3

Visual StudioでWCFプロジェクトを作成し、すべてのコードをC#で記述します。実際に発生する問題は、JavaEEからSOAP呼び出しを行うことです。

WCFサービスは、WCFをホストするWindowsサービスではなく、IISでホストされます。

WCFの使用を開始する方法に関するチュートリアル:

http://msdn.microsoft.com/en-us/library/dd936243.aspx

楽しみ!

于 2012-12-04T16:48:16.877 に答える
3

WCFサービスのREST/SOAPエンドポイント

2つの異なるエンドポイントでサービスを公開できます。SOAPの場合はSOAPをサポートするバインディングを使用できます(例:basicHttpBinding)。RESTfulの場合はwebHttpBindingを使用できます。RESTサービスはJSONであると想定しています。その場合、次の動作構成で2つのエンドポイントを構成する必要があります。

<endpointBehaviors>
    <behavior name="jsonBehavior">
        <enableWebScript/>
    </behavior>
</endpointBehaviors>

シナリオでのエンドポイント構成の例は次のとおりです。

<services>
    <service name="TestService">
        <endpoint address="soap" binding="basicHttpBinding" contract="ITestService"/>
        <endpoint address="json" binding="webHttpBinding"  behaviorConfiguration="jsonBehavior" contract="ITestService"/>
    </service>
</services>

そのため、このサービスは
http://www.example.com/soaphttp://www.example.com/jsonで利用できます
[WebGet]を運用コントラクトに適用してRESTfulにします。例えば

パブリックインターフェイスITestService{[OperationContract][WebGet] string HelloWorld(string text)}

RESTサービスがJSONにない場合、操作のパラメーターに複合型を含めることはできないことに注意してください。
戻り形式としての単純な古いXMLの場合、これはSOAPとXMLの両方で機能する例です。

[ServiceContract(Namespace = "http://test")]
public interface ITestService
{
[OperationContract]
[WebGet(UriTemplate = "accounts/{id}")]
Account[] GetAccount(string id);
}

RESTプレーンオールドXMLのPOX動作

<behavior name="poxBehavior">
    <webHttp/>
</behavior>

エンドポイント

<services>
    <service name="TestService">
        <endpoint address="soap" binding="basicHttpBinding" contract="ITestService"/>
        <endpoint address="xml" binding="webHttpBinding"  behaviorConfiguration="poxBehavior" contract="ITestService"/>
    </service>
</services>

サービスはで利用可能になります

http://www.example.com/soaphttp://www.example.com/xmlREST リクエストはブラウザで試してください http://www.example.com/xml/accounts/A123

サービス参照を追加した後のSOAPサービスのSOAP要求クライアントエンドポイント構成、

<client>
    <endpoint address="http://www.example.com/soap" binding="basicHttpBinding"
  contract="ITestService" name="BasicHttpBinding_ITestService" />
</client>

C#で

TestServiceClient client = new TestServiceClient();
client.GetAccount("A123");

これを行う別の方法は、2つの異なるサービス契約を公開し、それぞれを特定の構成で公開することです。これにより、コードレベルでいくつかの重複が生成される可能性がありますが、結局のところ、それを機能させたいと考えています。

于 2013-11-11T07:59:02.053 に答える
0

ここでWCFへのリンクを更新しました:http: //invalidcast.tumblr.com/post/52980598607/a-gentle-introduction-to-wcf

于 2013-09-12T08:08:49.727 に答える