サーバー側で何かを設定するのは初めてです...助けてくれてありがとう!
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 として表示される)
どうもありがとう