WCF 宿主與通信模式(二)

宿主

每個WCF服務都必須托管在Windows進程中,該進程稱為宿主進程(host process)

單個宿主進程可以托管多個服務,相同的服務類型也可以托管在多個宿主進程中。

?

wcf中托管服務一般有一下四種:

寄宿方式

描述

Console寄宿

利于開發調試,但不是生產環境中的最佳實踐。

winform寄宿

方便與用戶進行交互,用戶想開就開,想關就關,但如果機器重啟了,不得不自己手動開一下,危險+麻煩。

IIS寄宿

此寄宿在實戰項目中得到了廣泛的應用。好處有:隨系統啟動和停止。iis有大量的管理策略對其進行管理。即想利用wcf的功能,還想訪問asp.net的功能。

Window Service 寄宿

這個寄宿在實戰中也是廣泛運用的,同時也是隨系統開啟或者停止。

?

通信模式

  WCF在通信過程中有三種模式:請求與答復、單向、雙工通信。

模式

描述

特點

請求與答復模式

客戶端發送請求,然后一直等待服務端的響應(異步調用除外),期間處于假死狀態,直到服務端有了答復后才能繼續執行其他程序。

請求與答復模式為WCF的默認模式,即使返回值是void 也屬于請求與答復模式。

缺點:如果用WCF在程序A中上傳一個2G的文件,那么要想執行程序B也許就是幾個小時后的事情了。如果操作需要很長的時間,那么客戶端程序的響應能力將會大大的下降。

優點:有返回值我們就可以向客戶端返回錯誤信息,如:只接收".rar"文件等信息。

單向模式

客戶端向服務端發送求,但是不管服務端是否執行完成就接著執行下面的程序。

優缺點與“請求響應模式”差不多倒過來。

特點:使用 IsOneWay=true 標記的操作不得聲明輸出參數、引用參數或返回值

雙工模式

雙工模式建立在上面兩種模式的基礎之上,實現客戶端與服務端相互的調用。相互調用:以往我們只是在客戶端調用服務端,然后服務端有返回值返回客戶端,而相互調用不光是客戶端調用服務端,而且服務端也可以調用客戶端的方法。

雙工模式是建立在以上兩種模式之上的模式,他們并不沖突。

支持回調的綁定有4種:WSDualHttpBinding、

NetTcpBinding、

NetNamedPipeBinding、

NetPeerTcpBinding

轉載于:https://www.cnblogs.com/birdwawe/p/4583326.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273186.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273186.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273186.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql端口被占用_MySQL重啟端口被占用處理

1,查看日志的ERROR2018-05-23T01:26:59.230382Z 0 [Warning] NO_AUTO_CREATE_USER sql mode was not set.2018-05-23T01:26:59.230409Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled2018-05-23T01:26:59.230…

poj 3660 傳遞閉包 **

題意:題目給出了m對的相對關系,求有多少個排名是確定的。 鏈接:點我 如果這個點到其他點的關系是確定的,那么這個點就是確定的,注意如果這個點到不了其他點,但其他點能到這個點,那么這個點和其他…

C# 網絡編程之webBrowser獲取網頁url和下載網頁中圖片

該文章主要是通過C#網絡編程的webBrowser獲取網頁中的url并簡單的嘗試下載網頁中的圖片,主要是為以后網絡開發的基礎學習.其中主要的通過應用程序結合網頁知識、正則表達式實現瀏覽、獲取url、下載圖片三個功能.而且很清晰的解析了每一步都是以前一步為基礎實現的. 一.界面設計…

mysql員工腳本_mySQL常用腳本匯總

mysql的常用腳本有哪些呢?我們來做個總結建表語句sql語句最后指定主鍵DROP TABLE IF EXISTS user_info1;CREATE TABLE user_info1 (id int(11) NOT NULL AUTO_INCREMENT COMMENT 主鍵,name varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT 姓名,password varcha…

多線程 調用多線程的方法 Runtime與ProcessBuilder

一般我們使用Java運行其他類中的方法的時候,無論是靜態調用還是動態調用,都是在當前的進程中執行的。也就是只有一個Java虛擬機實例在運行。有時候需要通過Java代碼啟動多個Java子進程,這樣做會消耗些資源,但是程序變得更穩定。因…

mysql可連接_mysql開啟遠程可連接

1.打開cmd窗口,進入MySql安裝的bin目錄2.執行命令登錄數據庫,之后會出現一行要你輸入密碼的mysql -u root -p3.執行以下命令分配新用戶:grant all privileges on *.* to ‘用戶名‘‘IP地址‘ identified by ‘密碼‘;4.執行完上述命令后用下面的命令刷新…

ubuntu14.04 python2.7 安裝配置OpenCV3.0

環境:ubuntu14.04 python2.7 內容:安裝并配置OpenCV3.0 今天按照OpenCV官網上的步驟裝了OpenCV但是,裝好之后python提示“No module named cv2” 首先,安裝OpenCV的步驟: OpenCV官網的安裝步驟:http://doc…

mysql導出如何不區分大小寫_mysql 不區分大小寫

show variables like %case%-------------------------------| Variable_name | Value |-------------------------------| lower_case_file_system | OFF || lower_case_table_names | 1 | 表示已經是支持忽略大小寫了-------------------------------修改 /etc/mysql/…

[iOS] Win8下在Vmware11中安裝使用蘋果系統OS X 10.10

近來因為人事變動,領導打算安排我做 iOS 的項目,所以需要花一些時間提前準備一下iOS相關的東西。因為自己手頭上并沒有 Mac(過年為了閑的時候能玩玩游戲買了聯想,唉),想想不能只靠每天在公司的時間練 demo …

html5的網絡書店圖書網站代碼_【技能提升】10個編寫HTML5的實用小技巧

1. 新的文檔類型(Doctype)html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>上面這個既麻煩又難記的XHTML文檔類型你還在使用嗎?如果還是這樣的話,現在該切換到新的HTML5文檔類型…

hdu2457 Trie圖+dp

hdu2457 給定n個模式串, 和一個文本串 問如果修改最少的字符串使得文本串不包含模式串, 輸出最少的次數,如果不能修改成功,則輸出-1 dp[i][j] 表示長度為i的字符串, 到達狀態j(Trie圖中的結點)…

sql中if語句的用法_Python中的if條件語句

Python中的if語句在實際的編程中,經常需要檢查一系列條件,并據此決定采取什么措施。正常情況下,程序的執行是自上而下的進行,if語句則根據條件判斷,實現程序的執行順序改變。一、if-else語句1、語法:if 條件…

mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解決方法

權限問題,授權 給 root 所有sql 權限 mysql> grant all privileges on *.* to root"%" identified by ".";Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)轉載于:https://www.cnbl…

mysql中non用什么_mysql Non-Transactional Database Only(只支持MyISAM)

后來在做WordPress,一開始還不知道原來WordPress用的是InnoDB數據引擎,于是在原來的數據庫里面就建了一個數據庫,一開始也沒發覺問題,安裝,導入sql,都沒問題,當時也沒多想。直到這幾天因為又要裝多一個Word…

openSUSE 11 上的配置可以Xmanager遠程桌面

openSUSE 11 上的配置(適用于默認圖形環境為KDE的Linux): 1、配置KDM。 openSUSE 11的默認圖形環境為KDE,雖然可以同時安裝GDM和KDM,但默認只啟動了KDM。所以openSUSE 11只需配置KDM,如果你啟動了GDM來代替KDM,則配置可…

timed_waiting線程是否占用cpu_程序CPU占用率飆升,如何定位線程的堆棧信息?超詳細,值得收藏看不懂還有配套視頻 第319篇...

相關歷史文章(閱讀本文前,您可能需要先看下之前的系列?)國內最全的Spring Boot系列之三2020上半年發文匯總「值得收藏」GraphQL的探索之路 – SpringBoot集成GraphQL小栗子篇二 - 第315篇GraphQL的探索之路 – SpringBoot集成GraphQL之Query篇三 - 第316篇GraphQL的…

圖片的縮放(放大縮小)

package com.school.util;import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;import javax.imageio.ImageIO; /*** * <b>類名稱&#xff1a;圖片處理工具類</b>ImageUtils…

sql多層嵌套別名無效_SQL之復雜查詢

前文學了匯總分析&#xff0c;學了常見的匯總函數&#xff0c;會分組并且掌握了對分組結果指定條件。今天開始學習SQL的視圖和子查詢&#xff0c;還有數據庫關聯與嵌套查詢內容的學習。一、視圖1.1視圖是有單固定存儲可反復讀取使用的子查詢&#xff0c;所以視圖適用于頻繁使用…

POJ 1195 Mobile phones【 二維樹狀數組 】

題意&#xff1a;基礎的二維數組&#xff0c;注意 0 lowbit(0)會陷入無限循環----- 之前做一道一維的一直tle,就是因為這個-------------------------- 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include <cmath> 5 #includ…

mysql 交叉連接的用法_深入理解MySQL的外連接、內連接、交叉連接

1、內聯接(典型的聯接運算&#xff0c;使用像 或 <> 之類的比較運算符)。包括相等聯接和自然聯接。內聯接使用比較運算符根據每個表共有的列的值匹配兩個表中的行。例如&#xff0c;檢索 students和courses表中學生標識號相同的所有行。2、外聯接。外聯接可以是左向外聯…