2013-01-16 46 views
0

我必須在IIS7/VS2008上應用一些重定向規則,並對如何部署它有疑問。我們有一個網站,而不是網絡應用程序,因此大多數其他的SO問題對我沒有用處。IIS 7在網站上部署重寫規則

,才能在網站上應用規則如下圖所示:

<rewrite> 
     <rules> 
     <clear /> 
      <rule name="Redirect rule1 for Static404Redirects"> 
      <match url=".*" /> 
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
       <add input="{Static404Redirects:{REQUEST_URI}}" pattern="(.+)" /> 
      </conditions> 
      <action type="Redirect" url="{C:1}" appendQueryString="false" /> 
      </rule> 
     </rules> 
    </rewrite> 
  1. 在Bin文件夾沒有websitename .dll文件。只是像Ajaxtoolkit這樣的其他dll。
  2. 它應該有任何的dll /程序集/ GAC是一個網站?
  3. 我可以簡單地將測試服務器web.config複製到生產W/O使用任何IIS UI的規則部分,它應該工作。
  4. 在web.config更改後,還需要從IIS重新啓動應用程序嗎?或者新的變化本身對保存web.config有影響?

這是正確的嗎?或者我需要做什麼?我恐怕會web.config更改任何程序集更改/ DLL /版本或任何其他我應該首先想到的更改?正如我提到它的網站項目,它甚至沒有安裝在Prod上的VS2008。基本上我想確定我知道我在做什麼。

謝謝!

+0

您確定您在Server 2008上安裝了IIS6嗎?這沒有意義。 – pwdst

+0

感謝您的回覆!你是對的,我被告知它是IIS6,剛剛從我的先生那裏聽到。它的IIS7.0。 – user704988

+0

這些都不是.config?只要它們位於應用程序的根文件夾中,它應該沒有問題,IIS應該把它們放在一起? – Lloyd

回答

1

假設您實際上正在使用IIS7(AFAIK,無法在Server 2008上安裝IIS6)上面的代碼使用的語法是IIS7 Rewrite Module。這是一個擴展,並不是默認安裝的IIS,它需要在每臺服務器上單獨安裝。

1 + 2)一個網站(而不是一個web應用程序)可以部署編譯或未編譯。如果該網站已編譯,那麼bin目錄中將包含一個或多個dll文件,其中包含用於構建網站中使用的對象的代碼,以及aspx頁面的佔位符文件。編譯站點的優點是它的執行速度會更快,尤其是從「冷啓動」(站點不在服務器的內存中)時。如果網站沒有編譯它要麼有.aspx.cs/.aspx.vb文件包含的代碼,或在.aspx文件本身中

<script runat="server"> // code here </script> 

標籤。

3)IIS GUI只是生成將放置在web.config文件中的規則的簡單方法。在服務器之間複製文件應該可行,應該從開發者複製到實際環境(關於將連接字符串等更改爲適用於實時環境的常規規則)。一些開發者會在他們的開發服務器或本地機器上創建規則,並以這種方式部署它們。如果你想要,你根本不必碰觸IIS GUI,但只需在代碼中寫入規則即可。要使規則起作用,您需要在每臺服務器上安裝IIS 7重寫器模塊。

4)保存或「觸摸」web.config文件將強制重新啓動應用程序。在進程中,會話數據將丟失(作爲否定),但規則應立即生效 - 不需要IIS重置。

只要屬性和XML語法保持有效 - 更改或刪除應用程序密鑰或連接字符串,目標框架即可更改web.config以添加新規則,不應破壞任何代碼或已編譯程序集,除非發生明顯的破壞性更改,自定義錯誤或調試模式顯然都會影響您的網站。雖然沒有必要重新發布。由於XML故意易碎且出現語法錯誤,我強烈建議首先在非活動網站上測試您的更改,搞亂web.config是取消整個站點的最快方法之一。

+0

非常感謝你解釋這些。我安全地認爲它是一個未編譯的網站,因爲服務器具有.aspx.cs文件,但是我開始感到困惑,如果它有一些程序集/ DLL在我不知道的其他地方。如果我必須處理GAC /命令行工具等 – user704988

+0

作爲一個側面的問題如何在Prod上的IIS中部署模塊?前文檔[鏈接](http://www.iis.net/learn/develop/runtime-extensibility/developing-iis-modules-and-handlers-with-the-net-framework)在這種情況下,我可以繼續使用只有web.config從devel到prod? – user704988

+0

我沒有任何編寫和部署自定義IIS模塊的實際經驗,我不確定我是否理解這個問題,因此您最好使用適當的標籤創建一個新問題,以便具有更具體IIS經驗的人員可以回答。 – pwdst