2

サーバー側で何かを設定するのは初めてです...助けてくれてありがとう!

VisualStudio2008 / .NET 3.5 で動作する単純な HelloWorld REST API を取得しようとしています。最終的には、これを使用して、ローカルの無線 LAN で実行されているさまざまなモバイル デバイスからサーバーに CRUD テスト データ/結果を戻す予定です。

app.config の関連部分を変更する回答者の他の多くの質問を見つけましたが、この特定の問題に当てはまるものはないようです (試行錯誤しても結果は得られませんでした)。

  • 私の WebGet クエリは私のデータを正常に返します。
  • WebInvoke API を使用した Get リクエストで、「エンドポイントが見つかりません」というエラーが返される

これが私のServiceContractです:

[ServiceContract]
public interface IRestService
{
    [OperationContract]
    [WebInvoke(
        Method = "GET",
        ResponseFormat = WebMessageFormat.Xml,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "xml/{id}")]
    string XMLData(string id);  //Implemented as 'return "you requested " + id;'

    [OperationContract]
    [WebGet]
    string Test();              //Implemented as 'return "foobar";'

    [OperationContract]
    [WebGet]
    string Test2(string foo);   //Implemented as 'return "foobar=" + foo;'
}

そして、ここに私のapp.configがあります

<services>
  <service name="MyRestService.IRestServiceImpl" behaviorConfiguration="MyServiceBehavior">

    <host>
      <baseAddresses>
        <add baseAddress="http://localhost/foo/bar"/>
      </baseAddresses>
    </host>

    <endpoint address ="" binding="webHttpBinding" contract="MyRestService.IRestService" behaviorConfiguration="myRestBehavior" />

  </service>
</services>

<behaviors>

  <serviceBehaviors>
    <behavior name="MyServiceBehavior">
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>

  <endpointBehaviors>
    <behavior name="myRestBehavior">
      <webHttp/>
    </behavior>
  </endpointBehaviors>

</behaviors>

私はVisualStudioでf5経由で実行しています(これは、心配する.svc / IISのものがないことを意味すると思いますか?)、経由で接続しようとしています

http://localhost/foo/bar/Test
http://localhost/foo/bar/Test2   (  /ParamIgnored if I add one  )
http://localhost/foo/bar/XMLData/123

私のブラウザで。

  • 「テスト」は「foobar」を返します
  • 'Test2' は 'foobar=' を返します (URL の末尾に追加する '?param' または '/param' に関係なく)
  • 「XMLData」で「エンドポイントが見つかりません」というエラーが表示される (ブラウザに html として表示される)

どうもありがとう

4

1 に答える 1

4

xml/{id} でアクセスできるように XMLData エンドポイントをオーバーライドしましたが、XMLData/{id} として呼び出しています。

于 2013-05-17T23:07:24.410 に答える