2013-03-22 64 views
0

按問題,這是希望我實現:如何創建位於域名/ some /路徑地址的IIS ASP.NET MVC網站?

  • 在IIS中創建單獨的Web站點的節點(7)舉辦部署ASP.NET MVC 4(和Web API)應用程序。我想要一個單獨的網站節點,例如在默認網站節點下的IIS中創建應用程序。這是爲了在應用程序web.config上擁有完全的權限,並且如果Web.config放置在某個子文件夾中,則不會有任何限制。

  • 假設我在開發IIS服務器上進行部署。通常,網站節點將位於某個類似於some.IP.addr.ess/的URL。我希望網站位於像some.IP.addr.ess/some/path/這樣的網址。這是爲了讓Web應用程序在部署在子文件夾中時也可以工作。這也是因爲我想在同一臺服務器上部署另一個Web應用程序,並且可以從some.IP.addr.ess/another/path/訪問它。

爲了澄清我混亂的要求:)我想有:

  1. 一個IIS Web服務器實例的服務器上運行,用一個IP和可能的域名。
  2. 在IIS實例中,有多個網站節點,每個節點一個。應用程序可以在ASP.NET MVC/Web API上運行。另一個應用程序可以在PHP上運行。另一個可能是靜態HTML頁面。這裏我要說的是應用程序作爲通用術語,不一定涉及IIS應用程序
  3. 如果服務器有一個IP地址,比如說123.123.123.123,那麼每個應用程序都應該可以通過如123.123.123.123/MvcApp1,123.123.123.123/PhpApp2等URL訪問。

我在網上搜索上,但也許我沒有使用正確的術語:我總是有關於如何創建默認節點中的應用程序或虛擬目錄等文章,然後我發現this ASP.NET forum post這似乎說我不能。 **感謝所有

編輯 - 要到問題的根源,如下要求:
我想指的是與不同的URL路徑的不同的應用程序,所以如IP地址/ Mvc1,IP地址/ Php2等。
所有這些都是開發服務器需要的,然後是測試和分期,而不是生產。因此,首先不需要域名。
我可以在子文件夾或虛擬目錄或應用程序中使用應用程序和Web.config,只要這並不妨礙彼此正常工作。例如。一個ASP.NET應用程序,一個帶有自己的路由的ASP.NET MVC,一個ASP.NET Web API和一個PHP。

+1

你的問題相當混亂。你問是否兩個站點可以在相同的IP地址,但使用兩個不同的虛擬文件夾,但有兩個不同的主機名,每個主機名都解析爲這些路徑內的根? – 2013-03-22 16:33:03

+0

我同意@MystereMan。您必須澄清您是否要求在一個文件夾結構中託管多個網站。如果您只想要文件夾結構,那麼使用自定義路線很容易。 – 2013-03-22 17:02:19

+0

感謝您的意見。我對這個問題做了一些澄清,請問我還不清楚。 – superjos 2013-03-22 18:59:49

回答

1

我想我明白你在做什麼,但是,我認爲你對事情有一些基本的誤解。

首先,是的,您可以在服務器上有多個網站節點。而且這些節點都可以響應相同的IP地址,但只有在使用HTTP 1.1主機名時纔有效,這意味着您必須使用不同的域名(主機名)來引用每個站點。因此,你必須:

domain1.com/mvc1 domain2.com/php1

兩個domain1.com和domain2.com解析爲123.123.123.123,但IIS會看主機名稱字段,並確定哪些它需要去的網站。

如果您輸入的是IP地址123.123.123.123,則IIS不知道您指的是哪個網站,因此它使用默認網站。這是關鍵,如果沒有主機名,那麼默認站點總是被使用。

如果您希望使用IP地址,唯一的選擇是使用默認站點內的應用程序文件夾。至少與正常的IIS。

+0

好的。我現在正在閱讀(在您對該問題的評論之後)。是的,爲了讓IIS解析網站節點,我沒有得到這個不相關的*(!)關於需要不同域的詳細信息。 – superjos 2013-03-22 20:19:03

0

自從我在IIS中搜索了一段時間後,我有些生疏,我不記得曾經遇到過你的情況。下面是我可以計算出的結果:

創建網站時,IIS文檔中提到了「獨特綁定」這一短語,但沒有明確說明這個唯一性的作用範圍,但假設它意味着服務器端應用程序是合乎邏輯的,因此如果你的兩個網站需要綁定到相同的URL,那麼它看起來是不可能的。該文檔還聲明綁定可以指定協議,端口和主機。請注意,沒有提及路徑;你似乎不能綁定到任何低級別的東西。這表明網站可以設置爲綁定到www.somehost.com,但不是www.somehost.com/some/path/

話雖如此,有可能您的問題可以通過解決問題的根源而不是症狀來解決。而不是詢問「如何在子路徑下設置IIS站點,以便我可以在一個URL下部署兩個應用程序?」,問「我應該如何在一個URL下設置兩個應用程序並且不會對Web有權限。配置?」

我知道一個事實,你可以很愉快地部署一個網址下的子路徑多個應用程序,因爲這正是我們在做的工作 - 我們在www.ourURL.com/somepath在ASP.NET MVC一個應用,和傳統的ASP。 NET Classic應用程序www.ourURL.com/otherpath。這兩個應用程序是單個Visual Studio解決方案下的獨立項目,每個項目都有自己的Web.config。

如果沒有關於應用程序結構和/或有關Web.config和子文件夾相關限制的具體問題的詳細信息,我真的沒有什麼更多的幫助;就像我說的那樣,我們在工作中部署這樣,我也沒有遇到任何問題。

+0

我在這個問題的「根源」上增加了一些更多的細節,試圖更清楚。 – superjos 2013-03-22 20:27:31