簡體   English   中英

使IIS7.5網站成為一個應用程序

[英]Make IIS7.5 Web Site an Application

我正在做的事情應該很簡單。 在IIS6中,我可以轉到網站上的“屬性”並從中創建/刪除應用程序狀態。 但是,我不能為我的生活弄清楚如何轉換網站本身(不是它下面的虛擬目錄)的應用程序!

最終,我的問題在於使用Visual Studio 2010中的“發布”功能,因為它給了我這個錯誤: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. 我假設這是因為網站未配置為應用程序。

如果我在我的網站下創建一個虛擬目錄並將其推廣到一個應用程序(通過右鍵單擊它並選擇Convert to Application ),那么一切都很好。 但我根本無法弄清楚如何對網站本身這樣做,我需要這樣做因為我需要這個MVC2網站托管在www.domain.com/而不是www.domain.com/appname/ 我錯了嗎? 我錯誤地使用VS2010還是我錯過了IIS中的選項?

我已經解決了我的問題。 事實證明,問題與IIS及其配置或類似的東西無關,而是VS2010發布Web應用程序的方式的副產品。

因此,正如我們大多數人所做的那樣,我們並沒有真正調試Cassini下的應用程序 - 相反,我們使用指向我們不斷變化的源代碼的IIS。 好吧,使用發布功能的默認設置,VS2010的功能是編譯應用程序(和依賴項),並將相應的文件復制到項目根位置內名為“obj”的特殊子目錄下的文件夾中。 其將要嘗試部署的Web應用程序的“副本”中包含要部署的web.config文件。 此配置文件包含應該位於應用程序根目錄中的web.config文件中的內容。 但請記住,我們的源代碼位於IIS應用程序中。 因此,一旦生成此文件(在我們編譯/構建版本之后),我們現在違反了我們的dev / build機器上的IIS要求。

所以只要VS成功發布應用程序並刪除該臨時副本,這一切都很好。 唯一的問題是VS不會刪除該臨時副本(在~/obj/Release/Package/PackageTmp )是否成功。 因此,一旦您嘗試發布一次,就無法成功編譯您的應用程序而沒有此錯誤暗示IIS配置中的問題,並且此錯誤將阻止將來發布。

所以我的解決方法是在發布后刪除obj文件夾。 其他功能性解決方法包括將其設置為調試IIS應用程序目錄路徑之外的文件夾(對源控制系統有益)或在obj文件夾下為調試/發布副本添加IIS應用程序(具有其他潛在好處)。 總而言之,這是一個非常混亂的問題,有一些非常簡單的解決方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM