WCF發布到IIS 7.0,並以https訪問


一、IIS 7.0中如何生成服務器證書,並要求網站以http訪問可參考:

http://www.cnblogs.com/chnking/archive/2008/10/07/1305811.html 

     這里一定要保證證書名字與服務器名完全相同

二、WCF應用程序制作

1.“新建項目”---WCF服務應用程序;

2.修改服務接口及服務類,生成;

3.如果不考慮安全,到這里直接發布,客戶端就可以調用了;

三、 WCF服務配置編輯器

1. 使用“WCF服務配置編輯器”打開該程序的web.config 

2. 新建"服務":

(1)選擇生成好的”.dll"

(2)通信模式有好幾種:TCP、HTTP、命名管道、MSMQ、對等(點對點),

(3)不考慮事務、就用基本Web服務操作性;

(4)終結點地址(可以不填,后面可能需要看下這個具體配置) 

3.新建"綁定“:

 (1)basicHttpBinding

 (2)切換到”安全性“

 (3)Mode選“Transport",然后設置TransportSecurity屬性中的TransportClientCredentialType為"none"

4.高級中的服務行為:

 (1)給個名字:命名空間.ServiceBehavior(不是固定的,只是覺得這樣寫挺規范的);

 (2)對於"serviceMetaData" 元數據,設置"HttpGetEnabled=false,HttpsGetEnabled=true",

 (3)應用服務行為設置,選中在步驟2中設置好的服務,“BehaviorConfiguration"中為(1)設定的名字,”終結點“中的”BindingConfiguration"要

選擇在步驟3中的綁定名稱

5.發布到WCF上:

 

6.用https測試WCF服務:

   唯一要注意的是localhost替換成本機名

7.使用添加“服務引用”或Svcutil生成客戶端,前提是:保證IIS_USER用戶對C:\Windows\Temp目錄有權限

8.生成客戶端后:

            string url = "https://myeggsoft/MyWcfService/DataService.svc";

            B asicHttpBinding myBinding = new BasicHttpBinding();
            myBinding.Security.Mode = BasicHttpSecurityMode.Transport;
            myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
            EndpointAddress address = new EndpointAddress(url);
            ServiceReference1.DataServiceClient client = new ServiceReference1.DataServiceClient(myBinding, address)
            ...... 

     

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM