2

このチュートリアルの使用:

http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide

VS 2010 からアプリを実行すると、ディレクトリ リストを表示できます。

VS が呼び出す IE ブラウザーに表示される URL (http://localhost:4841/) を IE の VS の外部インスタンスに貼り付けて、同じことを確認できます。ただし、チュートリアルのように「/xml/123」または「/json/123」を追加すると、URI は「http://localhost:4841/xml/123」または「http://localhost: 4841/json/123"、私は得る:

*「/」アプリケーションでサーバー エラーが発生しました。

リソースが見つかりません。説明: HTTP 404。探しているリソース (またはその依存関係の 1 つ) は、削除されたか、名前が変更されたか、一時的に利用できない可能性があります。次の URL を見直して、スペルが正しいことを確認してください。

要求された URL: /json/123/

バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.272*

「RestServiceImpl.svc」を URI に追加すると、「http://localhost:4841/RestServiceImpl.svc」になるので、「サービス」ページ (「これは Windows© Communication Foundation サービスです。このサービスは現在無効になっています。"); ただし、「/xml/123」または「/json/123」を追加すると、同じ 404 になります。

最も適切なコード (5 つ星のチュートリアルから直接取得) は次のとおりです。

[ServiceContract]
public interface IRestServiceImpl
{
    [OperationContract]
    [WebInvoke(Method = "GET",
        ResponseFormat = WebMessageFormat.Xml,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "xml/{id}")]
    string XMLData(string id);

    [OperationContract]
    [WebInvoke(Method = "GET",
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "json/{id}")]
    string JSONData(string id);
}
4

2 に答える 2

1

たとえば、実際のサービスが不足していると思います。RestServiceImpl.svc

したがって、次のようになります。

http://localhost:35798/RestServiceImpl.svc/xml/123

于 2012-10-17T17:41:56.953 に答える
0

さて、Web.configでこれを置き換えることでジレンマを解決しました:

<service name="RestService.RestServiceImpl"

...これとともに:

<service name="REST_JSON_POC.RestServiceImpl"

(および「REST_JSON_POC」で「RestService」が表示される他の場所)

(「RestService」はチュートリアルにあったものですが、REST_JSON_POC は私のプロジェクトの名前です)

しかし、別の問題が発生したため、新しい質問を作成します (「xml/123」は正常に動作しますが、「json/123」は、予期される文字列を含む「123」という名前のファイルをダウンロードするように求めます)。 .

于 2012-10-17T18:09:42.257 に答える