2013-12-12 18 views
15

私のチームは、WCFからWeb APIにアップグレードしたいと考えています。 VS2010からVS2012にインポートしたasp.net Webフォームアプリケーションが動作しています。ここまでは順調ですね。既存のasp.net WebフォームにWeb APIを追加するアプリケーション

しかし、別のWeb APIプロジェクトを作成しようとすると、利用できるWeb APIテンプレートがないことがわかります。 MVC 4アプリケーションを作成し、プロジェクトテンプレートをWebAPIとして設定することで、最も近いことがわかります。私はこのようにして、すべてが完全に落ちる。私はブラウザから呼び出して呼び出すことができるサンプルコントローラを備えた作業用APIを持っています。

この特定の欠点は、この特定の方法では手荷物が持ち込まれることだけです。私が作成したMVC 4プロジェクトには、JQUERYやその他のライブラリが含まれています。また、必要のないフォルダもあります。私が望むのは、Web API構造だけです。余分な手荷物ではありません。

オンライン検索を使用してテンプレートを検索しようとしましたが、見つかったパッケージが正しく機能しないという問題がありました。 enter image description here

私は自分の問題を正しく説明してくれることを願っています。私はいくつかのフィードバックを楽しみにしています:))ありがとう。

+0

このブログは多分役に立つ=> http://forums.asp.net/t/1912278.aspx?How+to+get+WebAPI+only+project+in+ Visual + Studio + 2012 –

答えて

18

Visual Studioで

  1. ASP.NET Webフォームプロジェクトを右クリックします。
  2. 追加 - インストール/共通/ MVC /ウェブAPI下の足場項目の追加]> [を...
  3. は、使用する を希望する足場の種類を選択します。
  4. スキャフォールドテンプレートの指示に従ってください。たとえば、「読み込み/書き込みアクションを含むWeb API 2コントローラ」または「Web API 2コントローラ - 空」を選択すると、コントローラ名の入力を求められます。
  5. 最近作成したコントローラを最近のコントローラーフォルダーを作成しました。

    • "App_Start/WebApiConfig2.cs" が作成されます。私は、Visual Studioは、以下のんを見ることができるものから、

結果

  • コントローラフォルダが作成されます。
  • Web.configが編集され、 "system.webServer"の内容を持つ "handlers"要素が追加されます。追加された
  • 参照:
    • System.Net.Http
    • System.Net.Http.Formatting
    • System.Web.Extensions
    • System.Web.Http
    • システム.Web.Http.WebHost
  • packages.configが更新されました。 O含める:
    • "Microsoft.AspNet.WebApi"
    • "Microsoft.AspNet.WebApi.Client"
    • "Microsoft.AspNet.WebApi.Core"
    • "Microsoft.AspNet.WebApi.WebHostを"
  • ノート

    はその後、私は同じことを次のようお勧めしますプロジェクトの代わりにControllersフォルダを右クリックすることから始まります。これは、新しいコントローラをルートレベルではなく、Controllersフォルダに置きます。上記の手順を実行した後のVisual Studioから

    Readmeファイル:

    Visual Studioは、プロジェクトにASP.NETのWeb API 2 'RowersCode.Web' の依存関係の完全なセットを追加しました。

    プロジェクト内のGlobal.asax.csファイルには、ASP.NET Web APIを有効にするために追加の変更が必要な場合があります。

    1. 次の名前空間参照を追加:System.Web.Httpを使用して

      • を。 System.Webを使用して
      • を送信してください。ルーティング;以下の追加

        保護ボイドのApplication_Start()

        {

        }

      • :コードは既にApplication_Startメソッドが定義されていない場合

    2. は、次のメソッドを追加しますApplication_Startメソッドの先頭までの行数:

      GlobalConfiguration.Configure(WebApiConfig2.Register);

      この質問を見る人のため
    +0

    「足場アイテムを追加する...」と表示されない – Si8

    +0

    VS2015では、「新しい足場アイテム...」 –

    0

    多くの研究の後、私はこの問題の解決策を考え出すことができました。 Visual Studioバージョンに関する私の解答を説明しましょう。

    VS 2012

    私は質問で述べたように、VS2012でのWeb APIプロジェクトを作成するための明確な方法はありません。 MVC 4アプリケーションを作成し、プロジェクトテンプレートをWebAPIとして設定する必要があります。その後、これを実行してWeb APIを機能させると、Jqueryライブラリなどの余分な荷物を安全に削除することができます。なぜなら、これらはプロジェクトでは絶対に使用されないからです。 VS2013で

    VS 2013

    より良いアプローチは、Web APIプロジェクトを追加し、管理するために続くしかしそこにあります。現在私はVS2013をWeb APIに使用しています。すべてのものが私の望みどおりに機能しています。親切にこのリンクを参照してください、あなたは

    http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

    より良いアイデアを得るでしょう私は、この情報をWeb APIに新しいすべてのそれらを助けることを願っています。特に、Web APIにアップグレードしたり、既存のプロジェクトにWeb APIを追加したい方に適しています。

    +0

    @ daddy6Elbows。実際に私の要件は、既存のWebフォームアプリケーションにWeb APIを追加することでした。したがって、質問タイトル「既存のasp.net WebフォームアプリケーションにWeb APIを追加する」が追加されました。しかし、ちょうどあなたの懸念に答えるために、Web APIをMVCに追加することはあまり変わらないかもしれません。 Web APIの別のプロジェクトを作成してMVCで参照するか、このプロジェクトからHTTP経由でMVCのメソッドを呼び出すだけです。どちらもうまくいくはずです。 –

    +1

    はい、MVCアプリケーションではなく、既存のWebフォームアプリケーションにMVCを追加する方法を検討していました。質問を誤って特徴づけることについて私の謝罪。私はあなたのオリジナルの質問に対する答えを探している人は誰もあなたの後続の答えから多くの洞察を得ることはできないと思います。私は間違っている可能性があり、誰も質問をしなければそれは問題ではないかもしれません。 – witttness

    +0

    私はASP.net Web Formである外部Webサイトを持っています。 Web APIをフォルダにファイルシステムとして公開しました。その後、私のウェブサイトで作成したサブフォルダにそれらのファイルやフォルダをコピーして、外部からアクセスできるようにしました。しかし、API呼び出しを照会しようとすると、エラーが発生します。私はプロセスを間違っているのですか? – Si8

    関連する問題