タグ付けされた質問 「asp.net-web-api」

ASP.NET Web APIは、ブラウザーやモバイルデバイスなどのクライアント用のHTTPサービスを構築するためのフレームワークです。これは、Microsoft .NET Frameworkに基づいており、RESTfulサービスを構築するための理想的な選択肢です。

10
日時パラメータを渡す方法は?
UTC日付をWebAPIに渡す方法は? 受け渡し2010-01-01は正常に機能しますが、2014-12-31T22:00:00.000Z(時間コンポーネントを使用して)などのUTC日付を渡すと、HTTP404応答が返されます。そう http://domain/api/controller/action/2012-12-31T22:00:00.000Z 404エラー応答を生成しますが、 http://domain/api/controller/action/2012-12-31 正常に動作します。 UTC日付をWebAPIに渡す方法、または少なくとも日付と時刻を指定する方法は?

6
POSTでJSONをWeb APIサービスに送信中にエラーが発生しました
Web APIを使用してWebサービスを作成しています。簡単なクラスを実装しました public class ActivityResult { public String code; public int indexValue; public int primaryCodeReference; } そして、私は自分のコントローラーの中に実装しました [HttpPost] public HttpResponseMessage Post(ActivityResult ar) { return new HttpResponseMessage(HttpStatusCode.OK); } しかし、POSTでファイルjsonを渡してAPIを呼び出すと: {"code":"XXX-542","indexValue":"3","primaryCodeReference":"7"} 次のエラーメッセージが表示されます。 { "Message": "The request entity's media type 'text/plain' is not supported for this resource.", "ExceptionMessage": "No MediaTypeFormatter is available to …

3
Web API属性ルーティングのオプションパラメーター
次のAPI呼び出しのPOSTを処理したい: /v1/location/deviceid/appid 追加のパラメータはポストボディから取得されます。 これはすべて私にとってうまくいきます。ここで、「deviceid」や「appid」、および/またはBodyDataをnullにして、コードを拡張します。 /v1/location/deviceid /v1/location/appid /v1/location/ これら3つのURLは同じルートで応答する必要があります。 私の最初のアプローチ(BodyDataが必要): [Route("v1/location/{deviceid}/{appid}", Name = "AddNewLocation")] public location_fromuser Post(string deviceid = null, string appid = null, [FromBody] location_fromuser BodyData) { return repository.AddNewLocation(deviceid, appid, BodyData); } これは機能せず、コンパイルエラーを返します: 「オプションのパラメータは最後にある必要があります」 次の試み: [Route("v1/location/{deviceid}/{appid}", Name = "AddNewLocation")] public location_fromuser Post([FromBody] location_fromuser BodyData, string deviceid = null, string appid …

4
待機後にHttpContext.Currentがnullになるのはなぜですか?
私は次のテストWebAPIコードを持っています。本番環境ではWebAPIを使用していませんが、この質問について話し合ったために作成しました。WebAPI非同期の質問 とにかく、これが問題のあるWebAPIメソッドです。 public async Task<string> Get(int id) { var x = HttpContext.Current; if (x == null) { // not thrown throw new ArgumentException("HttpContext.Current is null"); } await Task.Run(() => { Task.Delay(500); id = 3; }); x = HttpContext.Current; if (x == null) { // thrown throw new ArgumentException("HttpContext.Current is null"); …

8
別のプロジェクトのMVCソリューションのWeb API
私は新しいMVC4プロジェクトを作成しています。研究の結果、JavaScriptからサーバー側への通信は、コントローラーアクションではなくWeb APIフレームワークを介して実現する方がよいと信じるようになりました。私の理解はこれで正しいですか? 私はすべての属性などをWeb APIとMVCコントローラー間で共有できると思います。そのため、一見すると、私にとって大きな変更ではないようです。 アプリケーションをセットアップするとき、コンポーネントをプロジェクトに分割したいです。私の計画は、MVCプロジェクトとWeb APIプロジェクトを用意することでした。しかし、私は問題に出くわしました。例えば、私は2つのアプリなどで終わりました、別々のルーティング設定など だから私の質問は、MVCアプリケーションでは、Web APIフレームワークが同じプロジェクト内にあるのか、それともWeb APIを独自のプロジェクトに分離して問題を回避すべきなのか?

21
405メソッドはWebAPIを許可されていません
このエラーは非常に一般的であり、私はすべての解決策を試しましたが、どれもうまくいきませんでした。コントロールパネルでWebDAV公開を無効にし、これをWeb構成ファイルに追加しました。 <handlers> <remove name="WebDAV"/> </handlers> <modules runAllManagedModulesForAllRequests="true"> <remove name="WebDAVModule"/> </modules> エラーは引き続き発生します。これはコントローラーです: static readonly IProductRepository repository = new ProductRepository(); public Product Put(Product p) { return repository.Add(p); } メソッドの実装: public Product Add(Product item) { if (item == null) { throw new ArgumentNullException("item"); } item.Id = _nextId++; products.Add(item); return item; } そして、これは例外がスローされる場所です: client.BaseAddress …

6
Asp.net WEBAPIから明示的にJSON文字列を返しますか?
場合によっては、NewtonSoft JSON.NETを使用していて、コントローラーでコントローラーからJobjectを返すだけで、すべて問題ありません。 しかし、別のサービスから生のJSONを取得し、それをwebAPIから返す必要がある場合があります。このコンテキストでは、NewtonSOftを使用することはできませんが、可能であれば、文字列からJOBJECTを作成し(これは不要な処理オーバーヘッドのように見えます)、それを返すと、すべてがうまくいくでしょう。 ただし、これを単純に返したいのですが、文字列を返すと、クライアントはコンテキストをエンコードされた文字列として含むJSONラッパーを受け取ります。 WebAPIコントローラーメソッドからJSONを明示的に返すにはどうすればよいですか?

8
WCFデータサービス(OData)とASP.NET Web API
RESTfulサービスとさまざまなクライアント(Silverlight、iOS、Windows Phone 7など)で構成される分散アプリケーションを設計しています。現在、サービス、WCFデータサービス(OData)、またはASP.NET MVC 4で提供される新しいASP.NET Web APIを実装するために使用する必要があるテクノロジを決定しています。 私はそれぞれについていくつかのプレゼンテーションをオンラインで見てきましたが、今は主にURIとネイティブハイパーメディア機能に組み込まれているフィルタリングメカニズムのために、WCF Data Servicesに傾いています。私が見ることができる唯一の欠点は、POXとは対照的なAtom Pub仕様の冗長性です。 決定を下す前に、これら2つのテクノロジーについて知っておくべきことはありますか?なぜ誰かがWCF Data ServicesではなくASP.NET Web APIを選択するのですか?


15
WebAPIで応答をシリアル化できませんでした
ASP.NET MVC Web APIで作業していましたが、次のエラーが発生します。 'ObjectContent`1'タイプは、コンテンツタイプ 'application / xmlの応答本文のシリアル化に失敗しました。charset = utf-8 '。 私のコントローラーは: public Employee GetEmployees() { Employee employees = db.Employees.First(); return employees; } なぜこのエラーが発生するのですか?

4
.NETWebAPIシリアル化k_BackingFieldNastiness
以下をシリアル化すると: [Serializable] public class Error { public string Status { get; set; } public string Message { get; set; } public string ErrorReferenceCode { get; set; } public List<FriendlyError> Errors { get; set; } } 私はこの嫌な混乱を得る: <ErrorRootOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Printmee.Api"> <_x003C_Errors_x003E_k__BackingField> An exception has occurred. Please contact printmee support </_x003C_Errors_x003E_k__BackingField> <_x003C_LookupCode_x003E_k__BackingField>988232ec-6bc9-48f3-8116-7ff7c71302dd</_x003C_LookupCode_x003E_k__BackingField> …


11
Unityを使用してASP.NETWebAPIコントローラーに依存関係を挿入できません
IoCコンテナーを使用してASP.NETWebAPIコントローラーに依存関係を注入することに成功した人はいますか?私はそれを機能させることができないようです。 これが私が今していることです。 私の中でglobal.ascx.cs: public static void RegisterRoutes(RouteCollection routes) { // code intentionally omitted } protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); IUnityContainer container = BuildUnityContainer(); System.Web.Http.GlobalConfiguration.Configuration.ServiceResolver.SetResolver( t => { try { return container.Resolve(t); } catch (ResolutionFailedException) { return null; } }, t => { try { return container.ResolveAll(t); } catch …

13
ASP.NET(MVC 4)Web API ODataプレリリースでファイルまたはアセンブリSystem.Net.Http、Version = 4.0.0.0を読み込めませんでした
問題 Microsoft ASP.NET Web API ODataパッケージ5.0.0-rc1プレリリースをインストールした後、次の例外が発生します。 ファイルまたはアセンブリ 'System.Web.Http、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040) 私のMVC4プロジェクトは真新しく、本当に小さく、派手なものは何もありません。.NET Framework4.5をターゲットにしています 私はこの必要nugetパッケージをするデルタクラスを使用してパッチを実装する (私は、デルタクラスが機能していないパッケージのバージョン4.0.0.0を使用する場合)。 どうすれば修正できますか? System.Web.Httpの私のバージョン でGAC Iバージョン持っ5.0.0.0 System.Web.Httpのを gacutil -l System.Web.Httpグローバルアセンブリキャッシュには、次のアセンブリが含まれています:System.Web.Http、Version = 5.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35、processorArchitecture = MSIL ではVisual Studioの、私はアセンブリを参照するとき、System.Web.Httpの特定のバージョンは、4.0.0.0(なぜ?) では私のプロジェクト、System.Web.Httpへの参照 バージョン5.0.0.0があります パッケージの\ lib \ net45 \フォルダーを指します CopyLocal = trueがあります 私が試したこと Web.configでリダイレクトv4.0.0.0を5.0.0.0にバインドしようとしました <dependentAssembly> <assemblyIdentity …

4
OWINセキュリティ-OAuth2更新トークンを実装する方法
Visual Studio2013に付属のWebApi 2テンプレートを使用していますが、ユーザー認証などを行うためのOWINミドルウェアがいくつかあります。 OAuthAuthorizationServerOptions私は、OAuth2サーバーが14日で期限切れになるトークンを配布するように設定されていることに気づきました OAuthOptions = new OAuthAuthorizationServerOptions { TokenEndpointPath = new PathString("/api/token"), Provider = new ApplicationOAuthProvider(PublicClientId,UserManagerFactory) , AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"), AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), AllowInsecureHttp = true }; これは私の最新のプロジェクトには適していません。を使用して更新できる短命のbearer_tokensを配布したいと思いますrefresh_token 私はたくさんのグーグルをしました、そして、何も役に立つものを見つけることができません。 だから、これは私が何とか到達したところです。「WTFdoInow」の段階になりました。 クラスのプロパティに従ってRefreshTokenProvider実装するを作成しました。IAuthenticationTokenProviderRefreshTokenProviderOAuthAuthorizationServerOptions public class SimpleRefreshTokenProvider : IAuthenticationTokenProvider { private static ConcurrentDictionary<string, AuthenticationTicket> _refreshTokens = new ConcurrentDictionary<string, AuthenticationTicket>(); public async …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.