คำถามติดแท็ก wcf

Windows Communication Foundation เป็นส่วนหนึ่งของ. NET Framework ที่มีรูปแบบการเขียนโปรแกรมแบบครบวงจรสำหรับการสร้างแอปพลิเคชันที่มุ่งเน้นบริการอย่างรวดเร็ว

16
การสะสมถูกแก้ไข; การดำเนินการแจงนับอาจไม่ทำงาน
ฉันไม่สามารถไปที่ด้านล่างของข้อผิดพลาดนี้ได้เพราะเมื่อมีการแนบตัวดีบั๊กมันจะไม่เกิดขึ้น ด้านล่างเป็นรหัส นี่คือเซิร์ฟเวอร์ WCF ในบริการ Windows เมธอด NotifySubscribeers ถูกเรียกโดยบริการเมื่อใดก็ตามที่มีเหตุการณ์ข้อมูล (ตามช่วงเวลาที่สุ่ม แต่ไม่บ่อยมาก - ประมาณ 800 ครั้งต่อวัน) เมื่อไคลเอนต์ Windows Forms สมัครสมาชิก ID สมาชิกจะถูกเพิ่มไปยังพจนานุกรมสมาชิกและเมื่อลูกค้ายกเลิกสมาชิกมันจะถูกลบออกจากพจนานุกรม ข้อผิดพลาดเกิดขึ้นเมื่อ (หรือหลังจาก) ลูกค้ายกเลิกการเป็นสมาชิก ปรากฏว่าในครั้งต่อไปที่เรียกใช้เมธอด NotifySubscribers () ลูป foreach () จะล้มเหลวด้วยข้อผิดพลาดในบรรทัดหัวเรื่อง วิธีการเขียนข้อผิดพลาดลงในบันทึกการใช้งานตามที่แสดงในรหัสด้านล่าง เมื่อมีการแนบดีบักเกอร์และการยกเลิกการเป็นลูกค้ารหัสจะทำงานได้ดี คุณเห็นปัญหาเกี่ยวกับรหัสนี้หรือไม่? ฉันต้องทำให้พจนานุกรมปลอดภัยไหม? [ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)] public class SubscriptionServer : ISubscriptionServer { private static IDictionary<Guid, Subscriber> subscribers; public SubscriptionServer() { …

18
วิธีปฏิบัติที่ดีที่สุดสำหรับการรักษาความปลอดภัย REST API / บริการบนเว็บ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา เมื่อออกแบบ REST API หรือบริการจะมีแนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดการด้านความปลอดภัย (การรับรองความถูกต้องการอนุญาตการจัดการข้อมูลผู้ใช้)? เมื่อสร้าง SOAP API คุณจะต้องมี WS-Security เป็นแนวทางและมีเอกสารมากมายในหัวข้อ ฉันพบข้อมูลน้อยลงเกี่ยวกับการรักษาจุดสิ้นสุด REST ในขณะที่ฉันเข้าใจว่า REST โดยเจตนาไม่มีข้อกำหนดเหมือนกับ WS- * ฉันหวังว่าวิธีปฏิบัติที่ดีที่สุดหรือรูปแบบที่แนะนำได้เกิดขึ้นแล้ว การอภิปรายหรือลิงค์ไปยังเอกสารที่เกี่ยวข้องจะได้รับการชื่นชมอย่างมาก หากเป็นเรื่องสำคัญเราจะใช้ WCF กับข้อความ POX / JSON ต่อเนื่องสำหรับ REST API ของเรา / บริการที่สร้างโดยใช้ v3.5 ของ. NET Framework

11
WCF กับ ASP.NET Web API [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันใช้เวลาสองสามเดือนเพื่อพยายามเข้าใจแนวคิดเบื้องหลัง WCF และเมื่อเร็ว ๆ นี้ฉันได้พัฒนาแอปพลิเคชันบริการ WCF แรกของฉัน ฉันพยายามอย่างหนักที่จะเข้าใจการตั้งค่าทั้งหมดในไฟล์ปรับแต่ง ฉันไม่มั่นใจเกี่ยวกับสภาพแวดล้อม แต่ดูเหมือนว่าคุณสามารถทำสิ่งที่น่าอัศจรรย์กับมัน วันอื่น ๆ ที่ผมเคยพบว่าไมโครซอฟท์ออกมาพร้อมกับสิ่งใหม่ที่เรียกว่าเว็บ ASP.NET API สำหรับสิ่งที่ฉันสามารถอ่านได้มันเป็นกรอบงาน RESTfulใช้งานง่ายและนำไปปฏิบัติ ตอนนี้ฉันกำลังพยายามหาว่าอะไรคือความแตกต่างที่สำคัญระหว่าง 2 เฟรมเวิร์กและถ้าฉันควรลองและแปลงแอพพลิเคชั่นบริการ WCF เดิมของฉันด้วย API ใหม่ มีใครได้โปรดช่วยฉันเข้าใจความแตกต่างและการใช้งานของแต่ละคน
484 c#  wcf  asp.net-web-api 

13
WCF - วิธีเพิ่มโควต้าขนาดข้อความ
ฉันมีบริการ WCF ซึ่งส่งกลับ 1,000 รายการจากฐานข้อมูลไปยังลูกค้า ฉันมีไคลเอนต์ ASP.NET WCF (ฉันได้เพิ่มการอ้างอิงบริการในโครงการแอปพลิเคชันเว็บ asp.net เพื่อบริโภค WCF) ฉันได้รับข้อความต่อไปนี้เมื่อฉันเรียกใช้แอปพลิเคชันไคลเอนต์: เกินโควต้าขนาดข้อความสูงสุดสำหรับข้อความขาเข้า (65536) เกินแล้ว เมื่อต้องการเพิ่มโควต้าใช้คุณสมบัติ MaxReceivedMessageSize บนองค์ประกอบการรวมที่เหมาะสม ความช่วยเหลือใด ๆ วิธีเพิ่มโควต้าขนาดข้อความ
455 .net  asp.net  wcf  .net-3.5 


26
วิธีแก้ปัญหาที่ดีที่สุดสำหรับลูกค้า WCF `using` ปัญหาบล็อกคืออะไร?
ฉันชอบอินสแตนซ์ไคลเอ็นต์บริการ WCF ของฉันภายในusingบล็อกเพราะมันเป็นวิธีมาตรฐานในการใช้ทรัพยากรที่ใช้IDisposable: using (var client = new SomeWCFServiceClient()) { //Do something with the client } แต่ดังที่กล่าวไว้ในบทความ MSDN นี้การตัดไคลเอ็นต์ WCF ในusingบล็อกอาจปิดบังข้อผิดพลาดใด ๆ ที่ทำให้ไคลเอ็นต์อยู่ในสถานะบกพร่อง (เช่นหมดเวลาหรือปัญหาการสื่อสาร) เรื่องสั้นสั้น ๆ เมื่อเรียกใช้ Dispose () เมธอด Close () ของไคลเอ็นต์จะเริ่มทำงาน แต่จะโยนข้อผิดพลาดเนื่องจากอยู่ในสถานะบกพร่อง ข้อยกเว้นดั้งเดิมถูกหลอกลวงโดยข้อยกเว้นที่สอง ไม่ดี. วิธีแก้ปัญหาที่แนะนำในบทความ MSDN คือการหลีกเลี่ยงการใช้usingบล็อกอย่างสมบูรณ์และเพื่อยกตัวอย่างลูกค้าของคุณและใช้สิ่งเหล่านี้แทน: try { ... client.Close(); } catch (CommunicationException e) { ... client.Abort(); …
404 c#  vb.net  wcf  using  wcf-client 

5
อะไรคือความแตกต่างระหว่าง WCF และ ASMX เว็บเซอร์วิส
ฉันสับสนโดยสิ้นเชิงระหว่าง WCF และ ASMX เว็บเซอร์วิส ฉันใช้บริการเว็บจำนวนมากในระยะก่อนหน้านี้และตอนนี้มีสิ่งใหม่ที่เรียกว่า WCF ฉันยังสามารถสร้าง WCF ที่ทำหน้าที่เป็นบริการเว็บ ฉันคิดว่าจะมีสิ่งต่าง ๆ ใน WCF มากขึ้น อะไรคือความแตกต่างระหว่าง WCF และบริการบนเว็บ? เมื่อใดควรใช้แต่ละคน
375 wcf  web-services  asmx 

30
ไม่พบองค์ประกอบจุดสิ้นสุดเริ่มต้น
ฉันได้เพิ่มพร็อกซีไปยังเว็บเซอร์วิซในโซลูชัน VS2008 / .NET 3.5 เมื่อสร้างไคลเอนต์. NET พ่นข้อผิดพลาดนี้: ไม่พบองค์ประกอบจุดสิ้นสุดเริ่มต้นที่อ้างอิงสัญญา 'IMySOAPWebService' ในส่วนการกำหนดค่าไคลเอนต์ ServiceModel อาจเป็นเพราะไม่พบไฟล์กำหนดค่าสำหรับแอปพลิเคชันของคุณหรือเนื่องจากไม่พบองค์ประกอบปลายทางที่ตรงกับสัญญานี้ในองค์ประกอบลูกค้า การค้นหาข้อผิดพลาดนี้บอกให้ฉันใช้เนมสเปซเต็มรูปแบบในสัญญา นี่คือแอปของฉันกำหนดค่าด้วยเนมสเปซเต็มรูปแบบ: <client> <endpoint address="http://192.168.100.87:7001/soap/IMySOAPWebService" binding="basicHttpBinding" bindingConfiguration="IMySOAPWebServicebinding" contract="Fusion.DataExchange.Workflows.IMySOAPWebService" name="IMySOAPWebServicePort" /> </client> ฉันใช้ XP ในเครื่อง (ฉันพูดถึงสิ่งนี้เนื่องจากมี Google จำนวนหนึ่งที่กล่าวถึง win2k3) app.config ถูกคัดลอกไปยัง app.exe.config ดังนั้นจึงไม่ใช่ปัญหา เบาะแสใด ๆ

30
เบรกพอยต์จะไม่ถูกโจมตีในขณะนี้ ไม่มีการโหลดสัญลักษณ์สำหรับเอกสารนี้ในแอปพลิเคชัน Silverlight
ตกลงสิ่งที่ฉันมี: Visual Studio 2010 RC, W7 x64 เริ่มต้นโครงการประเภทใหม่ของแอปพลิเคชัน Silverlight การโฮสต์แอปพลิเคชัน Silverlight ในโครงการแอปพลิเคชันเว็บ ASP.NET Silverlight เวอร์ชั่น 3.0 เพิ่มคลาส LinqToSQL บริการ WCF แอปพลิเคชันเครื่องทดสอบ Winform (โครงการในโซลูชัน) และคลาสไม่กี่รายการ (เช่นเดียวกับโครงการในโซลูชัน) เมื่อวานนี้ฉันได้รับ 'เบรกพอยต์จะไม่ถูกโจมตีในขณะนี้ ไม่มีการโหลดสัญลักษณ์สำหรับเอกสารนี้ ' ข้อความที่จะปรากฏใน IDE แต่มีผลกับ Web Appliaction เท่านั้นฉันสามารถดีบัก Silverlight และ Winform App ได้ สิ่งที่ฉันพยายามทำเพื่อกำจัดข้อความ: รีเซ็ตการตั้งค่า Visual Studio ลบไฟล์ทั้งหมดในทุกโฟลเดอร์ \ Temporary ASP.NET Files (มีหนึ่งไฟล์สำหรับแต่ละ …
331 c#  asp.net  wcf  debugging  iis 

6
โพสต์ JsonObject ด้วย HttpClient จาก Web API
ฉันกำลังพยายามโพสต์การJsonObjectใช้HttpClientจาก Web API ฉันค่อนข้างไม่แน่ใจว่าจะทำอย่างไรและไม่สามารถหาโค้ดได้มากนัก นี่คือสิ่งที่ฉันมี: var myObject = (dynamic)new JsonObject(); myObject.Data = "some data"; myObject.Data2 = "some more data"; HttpClient httpClient = new HttpClient("myurl"); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = httpClient.Post("", ???); ฉันคิดว่าฉันต้องทำให้ตัวเองJsonObjectเป็นStreamContentแต่ฉันก็ถูกวางสายในขั้นตอนนั้น

12
รูปแบบ URI ที่ให้ไว้ 'https' ไม่ถูกต้อง คาดว่า 'http' ชื่อพารามิเตอร์: ผ่าน
ฉันพยายามให้บริการ WCF ผ่านทาง BasicHttpBinding เพื่อใช้ผ่าน https นี่คือเว็บของฉัน config: <!-- language: xml --> <service behaviorConfiguration="MyServices.PingResultServiceBehavior" name="MyServices.PingResultService"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="defaultBasicHttpBinding" contract="MyServices.IPingResultService"> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> ... <bindings> <basicHttpBinding> <binding name="defaultBasicHttpBinding"> <security mode="Transport"> <transport clientCredentialType="None"/> </security> </binding> </basicHttpBinding> </bindings> ... <behaviors> <serviceBehaviors> <behavior name="MyServices.UpdateServiceBehavior"> …
281 c#  wcf  https 

12
WCF บน IIS8 การแมปตัวจัดการ * .svc ไม่ทำงาน
ฉันพยายามรับบริการ wcf ที่ทำงานใน IIS8 บน 2012 build 8400 เมื่อติดตั้งบทบาทเว็บสิ่ง wcf (ต่ำกว่า 3.51) จะไม่พบเหมือนในปี 2008 เมื่อติดตั้งการแมป svc handler ขาดหายไปดังนั้นฉันจึง: %windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe –i ขณะนี้มีการจัดการการแมป แต่ฉันยังคงได้รับ The resource you are looking for does not have a handler associated with it. (ฉันลบตัวจัดการไฟล์สแตติกออก) ไซต์ใช้คลาสสิกไพพ์ไลน์เพื่อใช้การเลียนแบบ
272 asp.net  wcf  iis-8  iis-8.5 

6
Guid คือ 0 ทั้งหมด (ศูนย์)?
ฉันกำลังทดสอบบริการ WCF บางอย่างที่ส่งวัตถุด้วย Guids ไปมา ในรหัสทดสอบแอปบนเว็บของฉันฉันกำลังทำสิ่งต่อไปนี้: var responseObject = proxy.CallService(new RequestObject { Data = "misc. data", Guid = new Guid() }); ด้วยเหตุผลบางอย่างการเรียกใช้Guid ()ใหม่กำลังสร้าง Guids ด้วย 0 ทั้งหมด (ศูนย์) ดังนี้: 00000000-0000-0000-0000-000000000000 สิ่งใดที่ทำให้เกิดสิ่งนี้
241 c#  .net  wcf  web-services  guid 

6
ฉันจะส่งคืน clean JSON จากบริการ WCF ได้อย่างไร
ฉันพยายามคืน JSON บางส่วนจากบริการ WCF บริการนี้จะส่งคืนเนื้อหาบางส่วนจากฐานข้อมูลของฉัน ฉันสามารถรับข้อมูล อย่างไรก็ตามฉันกังวลเกี่ยวกับรูปแบบของ JSON ของฉัน ขณะนี้ JSON ที่รับคืนถูกจัดรูปแบบดังนี้: {"d":"[{\"Age\":35,\"FirstName\":\"Peyton\",\"LastName\":\"Manning\"},{\"Age\":31,\"FirstName\":\"Drew\",\"LastName\":\"Brees\"},{\"Age\":29,\"FirstName\":\"Tony\",\"LastName\":\"Romo\"}]"} ในความเป็นจริงฉันต้องการให้ JSON ของฉันจัดรูปแบบได้อย่างสะอาดที่สุด ฉันเชื่อ (ฉันอาจไม่ถูกต้อง) ว่าชุดผลลัพธ์เดียวกันที่แสดงใน JSON สะอาดควรมีลักษณะดังนี้: [{ "Age": 35, "FirstName": "Peyton", "LastName": "Manning" }, { "Age": 31, "FirstName": "Drew", "LastName": "Brees" }, { "Age": 29, "FirstName": "Tony", "LastName": "Romo" }] ฉันไม่มีความคิดว่า "d" มาจากไหน ฉันยังไม่มีเงื่อนงำว่าทำไมตัวอักขระ escape …
233 wcf  json 

6
Namespace สำหรับ [DataContract]
ฉันไม่สามารถค้นหาเนมสเปซที่จะใช้สำหรับ[DataContract]และ[DataMember]องค์ประกอบ จากสิ่งที่ฉันพบดูเหมือนว่าการเพิ่มสิ่งต่อไปนี้น่าจะเพียงพอ แต่ในกรณีของฉันมันไม่เป็นเช่นนั้น using System; using System.Runtime.Serialization; นี่คือตัวอย่างรหัสของฉัน: using System; using System.Runtime.Serialization; namespace MyNamespace { [DataContract] public class Tuple<T1, T2> { // A custom implementation of a Tuple //... //... } } และข้อผิดพลาดที่ฉันได้รับ: ไม่พบประเภทหรือชื่อเนมสเปซ 'DataContract' (คุณพลาดการใช้คำสั่งหรือการอ้างอิงแอสเซมบลีหรือไม่) ฉันไม่ได้ใช้เนมสเปซที่ใช่ไหม?
230 c#  wcf  datacontract 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.