คำถามติดแท็ก asp.net-web-api

ASP.NET Web API เป็นเฟรมเวิร์กสำหรับสร้างบริการ HTTP สำหรับลูกค้าเช่นเบราว์เซอร์และอุปกรณ์มือถือ มันขึ้นอยู่กับ Microsoft .NET Framework และเป็นตัวเลือกที่เหมาะสำหรับการสร้างบริการ RESTful

17
ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'System.Net.Http, Version = 2.0.0.0 ใน MVC4 Web API
ฉันมีปัญหาแปลก ๆ เล็กน้อย ฉันพัฒนาแอปด้วย MVC 4 และ Web API ใหม่และทำงานได้ดีในเครื่อง ฉันติดตั้ง MVC4 บนเซิร์ฟเวอร์และปรับใช้แอป ตอนนี้ฉันได้รับข้อผิดพลาดต่อไปนี้: ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'System.Net.Http, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' หรือหนึ่งในการอ้างอิง นิยามรายการของแอสเซมบลีที่อยู่ไม่ตรงกับการอ้างอิงแอสเซมบลี (ข้อยกเว้นจาก HRESULT: 0x80131040) คำอธิบาย: มีข้อยกเว้นที่ไม่สามารถจัดการได้เกิดขึ้นระหว่างการดำเนินการตามคำขอของเว็บปัจจุบัน โปรดตรวจสอบการติดตามสแต็กสำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดและที่มาที่ไป ตลกพอรุ่นของ System.Net.Http ที่ฉันมีอยู่ในโฟลเดอร์แพ็คเกจของฉันหรือในโฟลเดอร์ ASP.NET MVC 4 \ Assemblies คือ 1.0.0.0 ฉันลบการอ้างอิงถึง System.Net.Http ออกจากโปรเจ็กต์ของฉันจริง ๆ แต่ฉันยังคงได้รับข้อความเดิม ฉันสับสนเล็กน้อยว่าได้รับข้อมูลอ้างอิง 2.0.0.0 …

3
พารามิเตอร์ทางเลือกใน Web Api Attribute Routing
ฉันต้องการจัดการ POST ของ API-Call ต่อไปนี้: /v1/location/deviceid/appid พารามิเตอร์เพิ่มเติมมาจาก Post-Body ทั้งหมดนี้ใช้ได้ดีสำหรับฉัน ตอนนี้ฉันต้องการขยายโค้ดของฉันโดยอนุญาตให้ "deviceid" และ / หรือ "appid" และ / หรือ BodyData เป็นโมฆะ: /v1/location/deviceid /v1/location/appid /v1/location/ URL ทั้ง 3 นี้ควรตอบสนองด้วยเส้นทางเดียวกัน แนวทางแรกของฉัน (จำเป็นต้องใช้ 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, …

4
เหตุใด HttpContext.Current จึงเป็นโมฆะหลังจากรอ
ฉันมีรหัสทดสอบ WebAPI ต่อไปนี้ฉันไม่ได้ใช้ WebAPI ในการผลิต แต่ฉันทำสิ่งนี้เพราะการสนทนาที่ฉันมีเกี่ยวกับคำถามนี้: คำถามWebAPI Async อย่างไรก็ตามนี่คือวิธีการ 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 == …

10
จะส่งผ่านพารามิเตอร์ datetime ได้อย่างไร
จะส่งวันที่ UTC ไปยัง Web API ได้อย่างไร การผ่านใช้2010-01-01งานได้ดี แต่เมื่อฉันผ่านวันที่ UTC เช่น2014-12-31T22:00:00.000Z(พร้อมส่วนประกอบเวลา) ฉันได้รับการตอบสนอง HTTP 404 ดังนั้น http://domain/api/controller/action/2012-12-31T22:00:00.000Z ให้การตอบสนองข้อผิดพลาด 404 ในขณะที่ http://domain/api/controller/action/2012-12-31 ใช้งานได้ดี จะส่งวันที่ UTC ไปยัง Web API ได้อย่างไร - หรืออย่างน้อยระบุวันที่และเวลา?

6
เกิดข้อผิดพลาดในการส่ง json ในบริการ POST ไปยังเว็บ API
ฉันกำลังสร้างบริการเว็บโดยใช้ Web API ฉันใช้คลาสง่ายๆ public class ActivityResult { public String code; public int indexValue; public int primaryCodeReference; } จากนั้นฉันได้ติดตั้งภายในคอนโทรลเลอร์ของฉัน [HttpPost] public HttpResponseMessage Post(ActivityResult ar) { return new HttpResponseMessage(HttpStatusCode.OK); } แต่เมื่อฉันเรียก API ผ่านใน POST ไฟล์ json: {"code":"XXX-542","indexValue":"3","primaryCodeReference":"7"} ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: { "Message": "The request entity's media type 'text/plain' is not supported for this …

21
วิธีการ 405 ไม่อนุญาตให้ใช้ Web API
ข้อผิดพลาดนี้เกิดขึ้นบ่อยมากและฉันได้ลองวิธีแก้ปัญหาทั้งหมดแล้ว แต่ก็ไม่ได้ผล ฉันได้ปิดใช้งานการเผยแพร่ WebDAV ในแผงควบคุมและเพิ่มสิ่งนี้ลงในไฟล์กำหนดค่าเว็บของฉัน: <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); …

8
Web API ในโซลูชัน MVC ในโครงการแยกต่างหาก
ฉันกำลังสร้างโครงการ MVC4 ใหม่และการวิจัยทำให้ฉันเชื่อว่าตอนนี้การสื่อสารจากจาวาสคริปต์ไปยังฝั่งเซิร์ฟเวอร์ทำได้ดีกว่าผ่านเฟรมเวิร์ก Web API มากกว่าการดำเนินการของคอนโทรลเลอร์ ความเข้าใจของฉันถูกต้องในเรื่องนี้หรือไม่? ฉันคิดว่าฉันสามารถแบ่งปันคุณลักษณะทั้งหมดของฉันและอื่น ๆ ระหว่างเว็บ API และตัวควบคุม MVC ได้ดูเหมือนจะไม่เปลี่ยนแปลงครั้งใหญ่สำหรับฉัน เมื่อฉันตั้งค่าแอปพลิเคชันฉันต้องการแยกส่วนประกอบออกเป็นโปรเจ็กต์ แผนของฉันคือมีโครงการ MVC และโครงการเว็บ API แต่ฉันได้พบกับปัญหา ตัวอย่างเช่นฉันมี 2 แอพเช่นนี้การตั้งค่าเส้นทางแยกต่างหาก ฯลฯ เป็นต้น ดังนั้นคำถามของฉันคือในแอปพลิเคชัน MVC เฟรมเวิร์ก API ของเว็บควรอยู่ในโปรเจ็กต์เดียวกันหรือควรแยกเว็บ API ออกเป็นโปรเจ็กต์ของตัวเองและแก้ไขปัญหา

6
ส่งคืนสตริง JSON อย่างชัดเจนจาก Asp.net WEBAPI หรือไม่
ในบางกรณีฉันมี NewtonSoft JSON.NET และในคอนโทรลเลอร์ของฉันฉันเพิ่งคืน Jobject จากคอนโทรลเลอร์ของฉันและทุกอย่างก็ดี แต่ฉันมีกรณีที่ฉันได้รับ JSON ดิบจากบริการอื่นและจำเป็นต้องส่งคืนจาก webAPI ของฉัน ในบริบทนี้ฉันไม่สามารถใช้ NewtonSOft ได้ แต่ถ้าทำได้ฉันจะสร้าง JOBJECT จากสตริง (ซึ่งดูเหมือนว่าเป็นค่าโสหุ้ยในการประมวลผลที่ไม่จำเป็น) และส่งคืนสิ่งนั้นและทุกอย่างจะเข้ากันได้ดีกับโลก อย่างไรก็ตามฉันต้องการส่งคืนสิ่งนี้ง่ายๆ แต่ถ้าฉันส่งคืนสตริงไคลเอ็นต์จะได้รับ JSON wrapper พร้อมบริบทของฉันเป็นสตริงที่เข้ารหัส ฉันจะส่งคืน JSON จากวิธีควบคุม WebAPI ของฉันอย่างชัดเจนได้อย่างไร


8
WCF Data Services (OData) กับ ASP.NET Web API
ฉันกำลังออกแบบแอปพลิเคชันแบบกระจายซึ่งจะประกอบด้วยบริการ RESTful และไคลเอนต์ที่หลากหลาย (Silverlight, iOS, Windows Phone 7 ฯลฯ ) ตอนนี้ฉันกำลังพิจารณาว่าควรใช้เทคโนโลยีใดในการปรับใช้บริการของฉัน WCF Data Services (OData) หรือ ASP.NET Web API ใหม่ที่ออกมาพร้อมกับ ASP.NET MVC 4 ฉันได้ดูงานนำเสนอทางออนไลน์เกี่ยวกับแต่ละเรื่องและตอนนี้ฉันเอนเอียงไปที่ WCF Data Services เป็นหลักเนื่องจากกลไกการกรองที่สร้างขึ้นใน URI และความสามารถของไฮเปอร์มีเดีย ข้อเสียอย่างเดียวที่ฉันเห็นคือความละเอียดถี่ถ้วนของข้อกำหนด Atom Pub ซึ่งตรงข้ามกับ POX มีอะไรบ้างที่ฉันควรรู้เกี่ยวกับเทคโนโลยีทั้งสองนี้ก่อนตัดสินใจ? ทำไมบางคนถึงเลือก ASP.NET Web API ผ่าน WCF Data Services?

2
มีวิธีที่แนะนำในการส่งคืนรูปภาพโดยใช้ ASP.NET Web API หรือไม่
วิธีใดเป็นวิธีที่ดีที่สุดในการส่งคืนรูปภาพที่มีพารามิเตอร์ 2 ตัว (x และ y สำหรับการปรับขนาด) ตัวอย่างเช่น ~/api/image12345/200/200 จะคืนค่า 200 คูณ 200 jpg / png / หรือ gif ฉันควรส่งคืนSystem.Drawing.Imageวัตถุหรือกำหนดด้วยตนเองHTTPReponseMessage.Content?

15
ไม่สามารถจัดลำดับการตอบสนองใน Web API
ฉันกำลังทำงานกับ ASP.NET MVC web API ฉันพบข้อผิดพลาดนี้: ประเภท 'ObjectContent'1' ล้มเหลวในการจัดลำดับเนื้อหาการตอบสนองสำหรับประเภทเนื้อหา 'application / xml; charset = utf-8 ' ตัวควบคุมของฉันคือ: public Employee GetEmployees() { Employee employees = db.Employees.First(); return employees; } ทำไมฉันถึงได้รับข้อผิดพลาดนี้

4
.NET WebAPI Serialization k_BackingField Nastiness
เมื่อฉันทำให้เป็นอนุกรมต่อไปนี้: [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> …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.