3

2つのWCFサービスExchange1.svcとExchange2.svcがあり、どちらもRESTfulJSONコンシューマブルになるように設定されています。Exchange1.svcは正常に機能しますが、Exchange2.svcに投稿しようとすると、エンドポイントが見つかりませんというメッセージが表示されます。

私は何が間違っているのですか?

私のIExchange2インターフェースは次のとおりです。

[ServiceContract]
public interface IExchange2
{
    [System.ServiceModel.OperationContract(Name = "InsertReading")]
    [WebInvoke(UriTemplate = "/InsertReading?memberID={memberID}", Method = "POST", ResponseFormat = WebMessageFormat.Json)]
    void InsertReading(string memberID);
}

私がヒットしようとしているURLは次のとおりです:http:// localhost:49701 / Exchange2.svc / DiaInsertReading?memberID = 6519548

私の設定は次のとおりです。

<system.serviceModel>
<behaviors>
    <endpointBehaviors>
        <behavior name="MyNamespace.Exchange1Behavior">
            <webHttp/>
        </behavior>
        <behavior name="MyNamespace.Exchange2Behavior">
            <webHttp/>
        </behavior>             
    </endpointBehaviors>
</behaviors>
<services>
    <service name="MyNamespace.Exchange1">
        <endpoint address="" binding="webHttpBinding" behaviorConfiguration="MyNamespace.Exchange1Behavior" contract="MyNamespace.IExchange1" />
    </service>
    <service name="MyNamespace.Exchange2">
        <endpoint address="" binding="webHttpBinding" behaviorConfiguration="MyNamespace.Exchange2Behavior" contract="MyNamespace.IExchange2" />
    </service></services></system.serviceModel>
4

2 に答える 2

2

答えが役に立たなかったので、私は自分の投稿を編集しました。svcを使用してIISでホストしているので、前の回答で言ったように、バインディングにアドレスを設定する必要はありません。ベースアドレスはサーバーの場所になります。例:http://localhost:49701/Exchange2.svc。このアドレスにアクセスすると、WCFサービスのWebページが表示されます。

POSTメソッドを使用しているため、リクエスト本文でデータを送信できます。フィドラーがインストールされている場合は、コンポーザーで、http://localhost:49701/Exchange2.svc/InsertReadingこれがサービスへのアドレスである場合に、投稿およびアドレス指定する方法を設定できます。リクエスト本文の本文で、{ memberID:"123" }change123をサービスに送信する値に設定します。

または、次のようなアドレスでデータを送信できます。http://localhost:49701/Exchange2.svc/InsertReading?memberID=123

ここでリクエストを実行すると、応答200OKが返されます。

于 2012-04-09T09:30:23.710 に答える
1

web.configファイルでエンドポイントを指定します

<service name="MyNamespace.Exchange2">
<endpoint address="Exchange2" binding="webHttpBinding" behaviorConfiguration="MyNamespace.Exchange2Behavior" contract="MyNamespace.IExchange2" />

次に、このエンドポイントをURLに次のように追加します。

http://localhost:49071/Exchange2/DiaInsertReading?memberID=6519548
于 2012-04-09T09:17:56.397 に答える