在IIS中寄存已有WCF服務

來源:互聯網
上載者:User

IIS是WCF服務的宿主之一,在建立Web Site的時候有WCF Service模板可以供選擇,不過依據WCF Service模板建立的網站是將服務和宿主整合在一起了,下面就來看看如何將一個已有的WCF服務寄存在IIS中。

1 在一個簡單的WCF樣本一文的解決方案中添加新的網站,選擇WCF Service模板,地址設定為http://localhost/IISHostedService,如:

2 確定後,WCF Service模板就產生了一個帶有服務的網站,因為我們要將已有服務寄存在該網站中,所以要刪除網站中內建的服務,服務的檔案在App_Code目錄中,如:

3 添加對Service項目的引用,如:

4 雙擊項目中Service.svc檔案,修改@ServiceHost指令,關聯上服務類型,修改後的代碼如下:

<%@ ServiceHost Language="C#" Debug="true" Service="Service.HelloWorldService"  %>

5 修改網站的Web.Config檔案,找到Service節點,修改Service節點的Name屬性、endpoint節點的綁定屬性和契約屬性,修改後的代碼如:

6 將該網站設定為啟動項目,按F5運行,如果Web.Config檔案中沒有配置中繼資料交換端點,運行後會看到如下頁面:

可以根據上面頁面中的步驟一步一步來配置中繼資料交換端點,配置好後,如果serviceMetadata節點的httpGetEnabled屬性設定為false,運行後如所示:

在設定httpGetEnabled屬性為true,再次運行可以看到svcutil指令後是一個帶有?wsdl的連結地址,如:

點擊這個連結,可以看到服務的WSDL文檔,如:

7 IIS宿主部分已經寫好,現在要做的就是使用SvcUtil工具來產生用戶端的代理,開啟VS2008 的命令提示視窗,輸入先前網站運行後的命令提示,如:

8 執行後產生了一個代理檔案和一個設定檔,在目錄C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC 中,將這兩個檔案拷貝到客戶程式中,設定檔改名為app.config,然後再客戶程式中添加如下代碼:

class Program{    static void Main(string[] args)    {        oec2003Client proxy = new oec2003Client();        Console.WriteLine(proxy.SayHello());        proxy.Close();        Console.ReadLine();    }}

9 運行客戶程式可以看到如下結果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.