IIS8托管WCF服務

WCF服務程序本身不能運行,需要通過其他的宿主程序進行托管才能調用WCF服務功能,常見的宿主程序有IIS,WAS,Windows服務,當然在學習WCF技術的時候一般使用控制臺應用程序或WinForm程序進行托管。本文將詳細介紹如何使用IIS8托管WCF服務程序以及解決可能會碰到的一些問題。步驟比較多,還需耐心看完!

一、安裝IIS8

1.本機器是Win8操作系統,默認沒有安裝IIS。安裝IIS8很簡單,具體步驟是:控制面板→程序和功能→啟用或關閉Windows功能,勾選Internet信息服務節點下的部分功能,

如圖所示:

2.安裝完畢,重啟系統后,在瀏覽器中輸入?http://localhost/,即可看見IIS8界面,表示安裝成功,如圖:

3.啟用WCF服務中的HTTP激活功能,具體步驟是:控制面板→程序和功能→啟用或關閉Windows功能,勾選“.Net Framework 4.5 高級服務”節點下的部分功能,

如圖所示:

?

二、編寫WCF服務應用程序

1.新建解決方案“IISHostWCF”,添加“WCF服務類庫”項目,命名為“WCFService”,如圖

該WCF服務的功能很簡單,根據參數Id獲取相應的價格,代碼如下:

1)服務接口代碼

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;namespace WCFService
{[ServiceContract]public interface IGetPrice{[OperationContract]string GetPriceByProductId(int id);}
}
View Code

2)實現接口的服務類代碼

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace WCFService
{public class GetPrice : IGetPrice{public string GetPriceByProductId(int id){string price = "0.00";switch (id){case 1:price = "12.34";break;case 2:price = "45.60";break;case 3:price = "78.99";break;default:price = "100.00";break;}return price;}}
}
View Code

2.在解決方案中,添加→新建網站,選擇“WCF服務”,命名為“WCFWebSite”,如圖

1)把新生成的IService.cs和Service.cs文件刪除

2)添加在第一個步驟里新建的WCF服務類庫,WCFService.dll

3).修改Service.svc文件

4)使用“WCF服務配置編輯器”編輯web.config文件

web.config代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration><appSettings><add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /></appSettings><system.web><compilation debug="false" targetFramework="4.5" /><httpRuntime targetFramework="4.5"/></system.web><system.serviceModel><services><service behaviorConfiguration="WCFServiceBehavior" name="WCFService.GetPrice"><endpoint address="basic" binding="basicHttpBinding" bindingConfiguration=""name="basicEndPoint" contract="WCFService.IGetPrice" /><endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""name="mexEndPoint" contract="IMetadataExchange" /><host><baseAddresses><add baseAddress="http://localhost:8002/" /></baseAddresses></host></service></services><behaviors><serviceBehaviors><behavior name="WCFServiceBehavior"><serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /><serviceDebug includeExceptionDetailInFaults="false" /></behavior></serviceBehaviors></behaviors><protocolMapping><add binding="basicHttpsBinding" scheme="https" /></protocolMapping>    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /></system.serviceModel><system.webServer><modules runAllManagedModulesForAllRequests="true"/><!--若要在調試過程中瀏覽 Web 應用程序根目錄,請將下面的值設置為 True。在部署之前將該值設置為 False 可避免泄露 Web 應用程序文件夾信息。--><directoryBrowse enabled="true"/></system.webServer></configuration>
View Code

5)發布“WCF服務網站”

三、使用IIS托管WCF服務

1.打開IIS管理器,添加網站,如圖

2.添加完網站后,右鍵菜單→管理網站→瀏覽,彈出頁面,選擇瀏覽“Service.svc”文件,

打開后,發現會報錯:

經過查找資料,原來是IIS8默認沒有添加處理svc文件的處理程序,需手動添加:

1)添加MIME類型

文件擴展名:.svc;MIME類型:application/octet-stream。

2)添加處理程序映射

請求路徑:?*.svc;

類型:System.ServiceModel.Activation.HttpHandler;

名稱:svc-Integrated

添加完畢后,重新啟動網站,再次瀏覽即可成功:

四、測試IIS托管的WCF服務

1.通過VS自帶的WCF測試工具

打開“VS2012開發人員命令提示”工具,輸入“wcftestclient”,即可打開“WCF測試客戶端”:

添加WCF服務測試地址:http://localhost:8001/Service.svc/mex

測試結果如下:

2.新建控制臺客戶端來測試WCF服務,添加服務引用

以下是簡單的測試代碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace WCFClient
{class Program{static void Main(string[] args){WCFGetPrice.GetPriceClient proxy = new WCFGetPrice.GetPriceClient("basicEndPoint");Console.WriteLine(proxy.GetPriceByProductId(3));Console.ReadKey();}}
}
View Code

結果如下:

?

至此使用IIS托管WCF服務應用程序詳細步驟完畢。

好困啊~~~

?

?

轉載于:https://www.cnblogs.com/shaomenghao/p/3477693.html

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

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

相關文章

北京師范大學認知神經科學 計算機,北京師范大學認知神經科學和學習國家重點實驗室.pdf...

北京師范大學認知神經科學和學習國家重點實驗室北京師范大學認知神經科學與學習國家重點實驗室DTI 、靜息fMRI、形態學測量原理及數據分析與應用深度講習班(第二輪通知)近年來&#xff0c;磁共振技術已廣泛地應用到神經科學、認知神經科學、臨床醫學等領域的研究&#xff0c;而…

JAVA面向對象-----instanceof 關鍵字

instanceof 關鍵字 1&#xff1a;快速演示instanceof Person pnew Person();System.out.println( p instanceof Person); 2&#xff1a;instanceof是什么&#xff1f; 1&#xff1a;屬于比較運算符&#xff1a; 2&#xff1a;instanceof關鍵字&#xff1a;該關鍵字用來判斷一…

電子工程師必去的論壇網站

Abstract 搞電子不能閉門造車&#xff0c;要到網上去交流交流&#xff0c;做個網絡吸血鬼也好。本人偶然也發一些資料&#xff0c;還是要感謝活躍在各大論壇上的大蝦們&#xff0c;讓小弟要走了不少彎路。有問題google一下&#xff08;不是本人崇洋媚外&#xff0c;google的功能…

對象的引用

int、datetime、bool、char等類型都屬于值類型&#xff08;valuetype&#xff09;&#xff0c;賦值的時候是傳遞拷貝。 普通的對象則是引用類型&#xff0c;賦值的時候是傳遞引用。傳遞給函數也是引用傳遞的。轉載于:https://www.cnblogs.com/roboot/archive/2012/02/15/235329…

Cesium應用篇:3控件(3)SelectionIndicator InfoBox

假設這樣一個場景&#xff0c;用戶在Cesium球上加載了一個GeoJson文件&#xff08;DataSource&#xff09;&#xff0c;里面是全美國所有州的Geometry信息&#xff08;Entity&#xff09;&#xff0c;疊加到球面后&#xff0c;你自然會有一種沖動&#xff0c;點擊某一個州&…

北理工計算機學院新聞,北理工計算機學子勇奪CVPR 2021 AI安全國際頂級賽事季軍...

2021年4月19日&#xff0c;CVPR 2021挑戰者計劃第六期落下帷幕。由北理工計算機學院教師李元章、張全新及廣州大學李進教授指導的DemiguiseWoo戰隊&#xff0c;在挑戰賽賽道二“ImageNet無限制對抗攻擊”發起沖擊&#xff0c;最終以9303.6的總分取得決賽第三名的好成績&#xf…

字符串入門

暴力 字典樹總結&#xff1a;字典樹的功能就是map字符串得到編碼或者查詢前綴關系套模板的時候注意t,s,&#xff0d;‘a’,[26],sz0的初始化還有一個問題&#xff0c;到底字典樹開多少內存比較合適&#xff0c;反正至少是要開字符總長度*2hdu1251 http://acm.hdu.edu.cn/showpr…

C++ 的基礎概念(3)——多態詳解。

最近兩次面試都問到了多態&#xff0c;我也不得不重視起來了&#xff0c;最近最大的收獲就是&#xff1a;基礎知識很重要&#xff0c;就算你很會寫代碼&#xff0c;但是面試官問你基礎知識答不上來的話&#xff0c;也很難被人賞識和錄用&#xff0c;所以還是要多補補基礎概念&a…

美育在計算機教育中應用,在現代教育技術中綻放數學美育之花

21世紀是信息化的社會&#xff0c;計算機、網絡等現代技術的飛速發展&#xff0c;作為現代教育技術&#xff0c;計算機多媒體技術和網絡技術已經越來越多地走進小學數學課堂&#xff0c;為深化教學改革&#xff0c;培養學生能力&#xff0c;發展學生個性&#xff0c;提供了嶄新…

.NET Forms身份驗證

.NET表單身份驗證 ASP.NET Forms 身份驗證的簡單實現&#xff1a;1&#xff09;在Web.config文件中配置應用程序使用 Forms 身份驗證&#xff1b;2&#xff09;創建登陸頁面&#xff0c;將用戶身份驗證票證添加到Cookie集合。1.配置文件中設置為Forms驗證<authentication mo…

Oracle SQL篇(三)Oracle ROWNUM 與TOP N分析

首先我們來看一下ROWNUM&#xff1a;含義解釋&#xff1a;1、rownum是oracle為從查詢返回的行的編號&#xff0c;返回的第一行分配的是1&#xff0c;第二行是2&#xff0c;依此類推。這是一個偽列&#xff0c;可以用于限制查詢返回的總行數。2、rownum不能以任何基表的名稱作為…

C++ Primer 第10章 pair類型

//10.2.cpp //至少使用三種方法創建pair對象。 //編寫三個版本的程序&#xff0c;分別采用不同的方法來創建pair對象 //方法1&#xff1a;在定義pair對象時提供初始化式來創建pair對象#include<iostream> #include<vector> #include<utility> #include<st…

計算機對口升學可以報考的學校,對口升學可以報考的學校都在這里,趕快來收藏吧...

對口升學指對口高考&#xff0c;在平常又叫對口單招&#xff0c;對口升學&#xff0c;是從中等職業學校畢業生招生&#xff0c;強調中等職業學校畢業生對口升高職的專業技能考試&#xff0c;以專業技能成績為主要錄取依據的招生辦法。報名條件具有正式學籍的中等職業學校畢業生…

Visual Studio 常用快捷鍵 (二)

想不到上一篇 【Visual Studio 常用快捷鍵】 受這么多人的歡迎。看來大家對Visual Studio的用法非常感興趣。 接下來我準備寫一個 “Visual Studio使用技巧 ” 一個系列的博客。 希望對大家有所幫助 本篇繼續介紹幾個常用的快捷鍵 閱讀目錄 按兩下Tab鍵回退到光標的上一次位置…

js 兼容event.target

function getEventTarget(e){ewindow.event||e;return e.srcElement||e.target; }轉載于:https://www.cnblogs.com/manong13/archive/2012/02/23/2364443.html

企業郵箱收發信息服務器怎么設置,網易閃電郵企業郵箱收發設置教程(IMAP)...

網易閃電郵企業郵箱收發設置教程(IMAP)發表時間 2019-05-30人氣 73(1)啟動閃電郵后&#xff0c;點擊“郵箱---新建郵箱賬戶”菜單&#xff0c;如下圖&#xff1a;(2)輸入“郵箱地址和密碼”&#xff0c;點擊下拉箭頭繼續設置&#xff0c;設置完成后點擊下一步&#xff0c;如下圖…

訂餐系統之Excel批量導入

批量導入現在基本已經成為各類系統的標配了&#xff0c;當前&#xff0c;我們訂餐系統也不例外&#xff0c;什么商家呀、商品呀、優惠碼之類的&#xff0c;都少不了。畢竟嘛&#xff0c;對非開發人員來說&#xff0c;看到Excel肯定比看到很多管理系統還是要親切很多的。這里&am…

需要忽略的一些信號

程序往往會因為收到一些信號導致退出&#xff0c;但很多時候并不是我們想要的&#xff0c;比如往一個已經關閉的socket連接發送數據就會受到SIGPIPE,此信號默認會退出程序&#xff0c;但其實大部分時候我們并不想這么做&#xff0c;所以需要忽略一些信號。常見的有 SIGPIPE SIG…

獲取網頁中選中的文字

獲取頁面中選中的文字 //獲取頁面中選中的文字 function getSelectedText(){if(window.getSelection){ //FFreturn window.getSelection().toString();}else{ //IEreturn document.selection.createRange().text;} }設置或獲取輸入框的選中文字 //設置文字選中 function setSe…

云服務器和獨享虛擬主機的區別,獨享虛擬主機和云服務器的幾大區別

獨享虛擬主機和云服務器的幾大區別發布時間&#xff1a;2020-10-15 19:05:51來源&#xff1a;億速云閱讀&#xff1a;99作者&#xff1a;Leah欄目&#xff1a;云計算今天就跟大家聊聊有關獨享虛擬主機和云服務器的幾大區別&#xff0c;可能很多人都不太了解&#xff0c;為了讓大…