WindowsAzure上把WebApp和WebService同時部署在一個WebRole中

來源:互聯網
上載者:User

WindowsAzure上把WebApp和WebService同時部署在一個WebRole中

  

    最近開發一個和WindowsAzure相關的應用,該應用還調用了一個WCFService,在開發過程中一直把Web和WCFService分別作為WebRole進行部署,但是,臨近末了客戶才要求為了節省Azure的相關費用要把二者合并部署。

    如果是普通的Web應用,則可以在IIS中建立一個網站後,把WebService作為其一個虛擬目錄即可。經過調查發現這是Windows Azure v1.3 的一個新特性:Full IIS,它允許開發人員在同一個WebRole中建立多個不同的應用。下面這個URL有這方面的更多介紹,請參考http://www.wadewegner.com/2011/02/running-multiple-websites-in-a-windows-azure-web-role/。

 

1. 首先,我們先用VS2010建立一個WindowsAzure的解決方案,並添加兩個WebRole(WebApp和WebService)。

 

 

 

2、在解決方案中移除WebService這個項目,同時把FullIIS下的Roles目錄中的WebService也刪除了。如。

3、通過添加現有項目,把WebService項目再添加到該解決方案中。如。

說明:以上這一刪一加的動作,是為了使FullIIS中只有一個WebRole(咱們這篇文章的目的不就是在一個WebRole中既要部署WebApp又要部署WebService這兩個應用嘛)。

4、實現WebService和WebApp的商務邏輯(省略)。

5、修改ServiceDefinition.csdef檔案,在Site下面添加一個VirtualApplication。請參考下面的csdef檔案配置。

 

<?xml version="1.0" encoding="utf-8"?><ServiceDefinition name="FullIIS" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">  <WebRole name="WebApp">    <Sites>      <Site name="Web">        <VirtualApplication name="Services" physicalDirectory="../WebService" /> <!--重點部分-->        <Bindings>          <Binding name="Endpoint1" endpointName="Endpoint1" />        </Bindings>      </Site>    </Sites>    <Endpoints>      <InputEndpoint name="Endpoint1" protocol="http" port="80" />    </Endpoints>    <Imports>      <Import moduleName="Diagnostics" />    </Imports>  </WebRole></ServiceDefinition>

 

6、在VS2010中,直接F5啟動,WebApp已經啟動。這時開啟“管理工具”——“IIS管理器”,在IIS管理器中可以看到FullIIS.WebApp這個Site下有一個Services的虛擬目錄,如(日文系統的圖片)。

 

把該Azure應用打包會產生一個FullIIS.cspkg的發行檔案包,把該檔案上傳到WindowsAzure後就達到了在一個WebRole中通過虛擬目錄的方式部署多個應用的目的了。

 

注意:在WindowsAzure中最好選擇Windows Azure Guest OS 2.0的作業系統,它搭載的是 Windows Server 2008 R2 和IIS 7.5。

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.