WCF服務發布和呼叫IIS服務

2022-01-25 15:56:20 字數 2296 閱讀 8388

最近就要面試了,就把前一段時間學習過的wcf服務又拿出來複習了一邊。本來還以為很easy的東西,誰知道等到真正要做的時候才知道原來有這麼多知識要學習!

先來說,把wcf基本服務完成的過程,我是在園子裡看著蔣金楠老師的部落格一點點做起來的。因為之前做過一次的原因,所以說這次做的時候也沒有太用心,隨隨便便的把**一抄就萬事大吉了。可是把**寫完之後,發現除錯不成系統提示如下:

原來在服務契約定義的時候沒有加上這句話

[servicecontract(name = "calculatorservice", namespace = "")]

這一點有做一點更正:這一點確實要加【servicecontract】不過不是必須要加(name 和namespace)。這一點謝謝

str.chan

你的第乙個錯誤只是 icalculator沒有宣告servicecontract屬性頭,而不是有沒有指明name的情況,事實上,指明name只會讓你的抽象層跟實現層 變成藕合狀態了,不值得推薦,試想,兩個專案要針對icalculator有2個不同的實現,那麼你的name不是要改成2個不同的實現類?

當時只是一味的抄,也沒有注意到它有什麼作用,後來轉到定義,看了一下

// 摘要:

//     獲取或設定 web 服務描述語言 (wsdl) 中的 元素的名稱。

//// 返回結果:

//     預設值為應用了 system.servicemodel.servicecontractattribute 的類或介面的名稱。

//這些其實大家不用管,只要記得把name賦值給實現介面的類就行了,後邊的命名空間因該是不使用也沒關係(如果你的程式僅僅使用於除錯)具體的我也沒有深入研究!!

接下來,就是關於iis的發布了,這可是折麼死我了!!原來老師講的時候沒有好好聽講,現在發愁了。後來還是一點點的試出來的,首先我在建了乙個資料夾,裡面有乙個bin資料夾,svc檔案,web.config三個檔案!其中bin資料夾中要使用服務契約的的dll(介面),和服務契約實現的dll(介面的實現),svc檔案中只有一句話:

這句話中只有service=「」這句話有用。service.calculatorservice是服務契約實現的命名空間.實現類!

接下來就是關於web.config的處理了!對於初學者,使用vs中配套的工具編寫是非常方便的。首先開啟vs->工具—>wcf服務配置編輯器,點選新建配置檔案,服務,新建服務

接下來,就是配置服務了,在高階中點選服務行為點選新增選擇

點選servicemetadata,作如下設定

最後把終結點設定如下

把服務新增上點選服務

因為我們是要用iis發布的,而不是應用程式了。這一點很重要,剛開始就是因為這一點,讓我耽誤了不少時間。最後就是用iis發布了。

開啟iis之後,將資料夾設為預設**,點選svc檔案瀏覽,就得到已下結果!

把這個超連結「?」之前的都複製下來!然後就是客戶端的呼叫了

在客戶端的「引用中左鍵新增服務引用如下圖

然後,點選確定就行了!!

這時候,在debug中執行客戶端應用程式,是不是就可以執行了。這樣根本就不用執行服務端,不過其實也是執行了的,只要你不關機伺服器就執行著!!神奇吧!!

哈哈,寫了半天,終於寫完了。因為本人是新人,其中有一些地方寫的不對,或者有缺陷,都請園子裡的朋友們多多指正!接下來把原始碼附上!!

接下來是發布iis的資料夾

使用IIS發布WCF服務

原創 灰灰蟲的家 圖 1 第二步 新建wcf服務站點。在解決方案上右擊,選擇 新增 新建 開啟新建 對話方塊。在 新增新 對話方塊中,我們選擇 wcf服務 並把 的名子命名為 bookservicehost 圖 3 第三步 在剛剛建立的wcf服務站點上新增對wcf服務庫專案 services專案的引...

WCF伺服器發布到IIS上面

最近公司用到wcf技術,不過不是我負責的,所以我自己在網上找了乙個例子,自己測試了了一下。前面都很簡單,就是發布以後佈署到iis上出了點問題 一,是瀏覽 時,出現如下錯誤 這是iis不能解譯 svc 檔案的問題。開啟配置 中的 處理程式對映 檢視有沒有下面紅框的內容 如果沒有,以管理員的身份執行 c...

使用Windows服務發布WCF服務

原創 灰灰蟲的家 第一步 建立windows服務程式windowsservicehost 圖1 圖2 第二步 向consolebookservicehost程式中新增兩個引用 乙個是wcf服務庫services專案的引用,另乙個是system.servicemodel引用。第三步 修改service...