2013-08-31 59 views
0

我剛剛被要求協助以下娛樂。WCF服務和MVC4項目在同一網站

國家今天

一個網站在info.com運行和一些數據的瀏覽器(具有基本的編輯器)。檢索和存儲操作通過調用另一個網站data.com完成。

查看器是使用網頁表單創建的。 Web服務可能是WCF(但可能會更舊)。

國家旨在

  1. 的架構轉移到Azure上。
  2. 查看器被重寫爲MVC。
  3. Web服務確保爲WCF。
  4. 這兩部分都在同一個網站下運行。

問題

(1)已經完成。 (2)och(3)對我來說不是問題。但是,我對(4)有點不確定。我擔心的是,在同一Azure網站下部署MVC項目和WCF項目時可能會出現一些問題。

我應該預料什麼問題?我會後悔沒有采取什麼預防措施?

回答

1

當你說你想在同一個網站下運行兩個部件時,你的意思是同一個web角色還是同一個實際的網站?

如果您的意思是相同的Web角色,但您可以使用Cloud Services中Web角色的多站點託管功能實現不同的站點。您可以閱讀關於Configure a Web Role for Multiple Web Sites的MSDN文檔。請注意,這條路徑將更像原始場景,因爲這些網站是兩個不同的網站,稍後可以輕鬆拆分。如果你看看這個,我會強烈推薦閱讀Michael Collier的Publishing Multiple Sites in a Web Role的提示。這些額外的網站如何進行打包,您需要知道的有些古怪。

如果你的意思是在同一個實際的網站,那麼這真的很簡單。在這裏沒有真正的Windows Azure特定的事情要處理。只需將WCF端點(svc)添加到您的MVC Web項目。我通過創建一個MVC 4應用程序測試了這一點。我添加了一個名爲Api的頂級文件夾。然後,我在Api文件夾上添加了新項目,並從對話框中選擇了WCF服務。它添加了.svc文件,界面等。如果您願意,甚至可以將服務的實現分解到另一個程序集。根據您決定將您的服務端點放置到項目中的位置,您可能需要處理路由,否則您可能不需要。

其他的選擇是非WCF特定的,比如在同一個MVC項目中使用WebAPI,或者甚至只是使用MVC控制器,更像是返回數據而不是視圖的服務端點。

相關問題