Category: WCF

征服使用 WebClient 呼叫 WCF後的下個目標,自然是學會用 PowerShell 呼叫 WCF,繼續精進野外求生技能。 歷經這段時間的 PowerShell 實戰練習,我得到重要心得:.NET 開發者想用 PowerShell 處理未知情境有捷徑 - 先寫出 C# 程式達成目標再將程式邏輯...

前陣子有讀者問起如何用 PowerShell Invoke-WebRequest 呼叫 WCF?我大概知道原理,只要組合出符合 WCF 要求的 XML,直接用 POSTMan/WebClient/HttpClient/Invoke-WebRequest 呼叫 WCF 不是難事,但囉嗦的 SOAP X...

蠻奇妙的一次射茶包經驗。 執行一項測試排程的移機作業,檢查過程注意到另一個相關測試台排程已連續三天(4/17-4/19)不正常。向同事提起,同事說該排程所依賴的某個 IIS 最近很不穩定,已經好幾天一早上班時是壞的,瀏覽器一直彈出帳號密碼對話框,輸入正確帳密也無法登入,直到 IISRESET 才恢復...

學藝不精,陸續踩了幾次雷,整理DataContract與DataMember對序列化的影響備忘。 WCF預設使用DataContractSerializer執行序列化,而DataContractSerializer可依物件類別標註的[DataContract]及[DataMember]、[Ig...

同事回報一起案例,某WCF服務的[OperationContract]方法宣告為void Blah(ref int i, ref string s),以傳址方式(By Reference)傳遞參數(延伸閱讀:Self Test - Value Type vs Reference Type),程式...

探討WCF雙工服務時發現WsDualHttpBinding不實用(Server會回頭連Client的80 Port)、NetTcpBinding難穿防火牆,二者均難應用於Internet,有實作Polling的Silverlight版Binding又無法用於其他程式,查了資料,才發現.NET 4...

在前篇文章試寫了WCF雙工服務,由於WsHttpBinding不支援雙工,故我們改用WsDaulHttpBinding及NetTcpBinding,分別用HTTP及TCP協定傳送資料。問題來了,大家都知道HTTP是單向的,Client端連上Server,每次送Request收Response後就...

除了從Client呼叫WCF服務取得結果,WCF也支援Server端反過來呼叫寫在Client端的方法(類似事件觸發概念),這種雙工(Duplex)模式算是WCF的一大賣點。Web API要實現類似概念得靠SignalR架構支援,直接內建雙工模式的WCF略勝一籌。 這篇文章,我們就來建立一個簡...

跟ASP.NET WebForm或MVC Controller一樣,WCF在接收Client的呼叫時,Server端必須建立一個Service型別的Instacne(執行個體)執行作業。在WebForm或MVC Controller裡,多採行「為每次Request建立Instance,處理完畢就...

前篇文章介紹完如何用protobuf-net取代WCF原本的XML及NMF序列化,來看看它在資料減量上的表現。 NetTcpBinding 首先登場的是NetTcpBinding改用protobuf-net後的封包分析,黃底部分為WCF Server回傳結果的封包: 資紏統計如下(第二...

Protocol Buffers是Google內部使用的跨語言資料格式標準,在資料體積及序列化/反序列化速度上表現亮眼,相信以下的Benchmark圖表已具備足夠的說服力,說明本文的研究動機:(Protocol Buffers拿下速度及資料量雙料冠軍) 圖表來源:http://theb...

早先我們觀察過WCF HTTP vs TCP的傳輸量差異,該測試呼叫GetData()作業傳入數字接回字串,並不算真的用到WCF的DataContract/DataMember序列化功能,故這次改聚焦在物件資料的序列化上,再做一次比較。 我小幅改寫Visual Studio WCF專案範本的Co...

在範例程式看到OperationContract(IsOneWay=true),不求甚解以為是指單向呼叫(傳回值是void)跟著亂抄亂用(錯誤示範,大家不要學),搞出一些奇怪現象才回頭查,發現觀念錯得離譜。 IsOneWay是用來定義單向合約沒錯,但重點在「呼叫端呼叫WCF作業,但不期待收到任...

前面的文章出現過BasicHttpBinding、NetTcpBinding,又提到「BasicHttpBinding接受匿名存取,NetTcpBinding需要認證」的預設行為,後續還會看到一堆BlahBlahBinding,這裡花點時間做個簡單介紹。 BasicHttpBinding、Ne...

稍早我們見識到net.tcp不容易偵錯的黑暗面,但net.tcp的好處在於通訊協定簡單,較HTTP簡潔輕巧,資料採二進位格式,體積比SOAP XML小。由於資料傳輸較少,預期會有較好的執行效能。但以上所說都是按理推想,我對二者資料傳輸量的真實差異感到好奇,便用Microsoft Network ...