如何使用登錄檔(.reg)進行新增、修改或刪除登錄機碼和值

操作登錄項目(Registry)是我經常做的事情,所以也常累積不少登錄檔(*.reg)隨時可供設定或移除,不過一般人可能比較少這樣處理,在此我就分享幾個操作登錄項目的一些小技巧。

匯出登錄機碼

無論如何,在測試修改機碼之前最好還是先備份一下,以一整個 "機碼" 為單位匯出(左側的每個資料夾都叫做機碼或稱子機碼),匯出成 *.reg 檔後,日後若改錯或出問題時,點兩下即可修復機碼。

登錄編輯程式 :: 匯出登錄項目

匯出後的格式像以下這樣,而我就是經常設定這種 *.reg 的檔案幫我更新、刪除一些系統常用機碼設定:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes]
"DefaultScope"="{05C72334-11F3-4e9f-8740-98128F52EFB9}"
"Version"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes\{xxxx-xxxx}]
"DisplayName"="Google"
"URL"=http://www.google.com/search?hl=zh-TW&esrch=BetaShortcuts&q={searchTerms}&lr=

新增或更新機碼值

我這陣子處理了許多開發環境的問題,其中幾天前講的 [ 安裝 Visual Studio .NET 2003 開發主機筆記 ] 就有提到如何解決 [HTTP - 401.1 未授權登入失敗] 的問題,這問題基本上只要新增一個機碼就能夠解決,而我就將這個「新增機碼」的動作儲存成 *.reg 檔,以後有其他電腦要設定環境時,直接 Double Click 就可以解決問題。

像這個問題需要在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 機碼中新增一筆 DisableLoopbackCheckDWORD 值,假設檔名我取成 Set-DisableLoopbackCheck.reg 內容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"DisableLoopbackCheck"=dword:00000001

備註:若「機碼」本身不存在,執行 *.reg 的時候會自動建立所有不認識的機碼,無須在特別另外建立。

刪除機碼值

如上一個範例,若要將 DisableLoopbackCheckDWORD 值刪除,就可以用以下語法進行刪除:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"DisableLoopbackCheck"=-

這裡的重點就是設定的地方要設定成一個減號 ( - ),這就代表著「刪除」的意思。

刪除登錄機碼

跟身除機碼值不同,刪除機碼將會連同機碼機碼值、與所有子機碼都一併刪除,算是個殺傷力相當大的語法,必須小心使用。

若你想將 Visual Studio 2008 最近開啟的專案(Recent Projects)全部清空的話,可以利用以下 reg 檔直接刪除機碼並重建機碼。

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\ProjectMRUList]

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\ProjectMRUList]

相關連結

  

此文章由 will 發表於 2008/11/30 上午 11:35:56

永久連結 | 評論 (1) | 此文章的RSSRSS comment feed |

分類: Visual Studio | 系統管理

標籤: , , , ,

收藏:

寫 ASP.NET 可利用 <asp:PlaceHolder> 降低 ViewState 大小

前幾天在調整一個網站的執行效能時,發現有幾頁的 ViewState 特別大,但是內容卻蠻簡單的,最主要就是一個 Repeater 控制項,內容不多,但 ItemTemplate 中只有用到一個 LinkButton 控制項,其他都是一般的 HTML 標籤加上 DataBound 語法 ( <%# Eval("XXX", "") %> ),由於我有用到 UpdatePanel 包住這個 Repeater 控制項,所以我 ViewState 不能關閉,關閉就會導致錯誤發生,所以我只能在 ItemTemplate 盡可能降低 ViewState 的使用,不過就因為除了 LinkButton 控制項之外的地方我都沒有可以調整的地方,才讓我想到還有個 PlaceHolder 控制項可用。

我簡單做了個範例說明這整件事,但我把 LinkButton 移除了,單純介紹在 Repeater 的 ItemTemplate 中的語法如何會佔用 ViewState 空間:

Default.aspx

<%@ Page Trace="true" Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html><body><form id="form1" runat="server">
    <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> <ol> </HeaderTemplate>
    <ItemTemplate>
        <li><a href="<%# Eval("URL", "") %>"><%Eval("TITLE", "")%></a></li>
    </ItemTemplate>
    <FooterTemplate> </ol> </FooterTemplate> </asp:Repeater>
</form></body></html>

Default.aspx.cs

using System;
using System.Collections.Generic;

public partial class _Default : System.Web.UI.Page
{
    class DataItem
    {
        public string URL { get; set; }
        public string TITLE { get; set; }

        public DataItem(string _url, string _title)
        {
            this.URL = _url;
            this.TITLE = _title;
        }
    }

    protected void Page_Init(object sender, EventArgs e)
    {
        List<DataItem> data = new List<DataItem>();

        data.Add(new DataItem("http://www.miniasp.com/", "多奇數位"));
        data.Add(new DataItem("http://blog.miniasp.com/", "The Will Will Web"));
        data.Add(new DataItem("http://msg.nat.gov.tw/", "我的貼身e管家"));

        Repeater1.DataSource = data;
        Repeater1.DataBind();
    }
}

在以上範例中,你會看到在 ItemTemplate 中有出現一段

<li><a href="<%# Eval("URL", "") %>"><%Eval("TITLE", "")%></a></li>

但是我開啟 Page Trace 之後,卻發現這一段是會佔用不少 ViewState 的,而且會將原本應該產生 LiteralControl 的,因為使用了 DataBound 的語法而被轉成 DataBoundLiteralControl 控制項,而這個控制項是會保留 ViewState 的,但我們在 *.aspx 頁面中卻無法關閉:

控制項樹狀結構

所以我在這些 HTML 資料的前後加上一個 PlaceHolder 控制項,並設定 EnableViewState 為 false 就可以把 ViewState 全部關掉了,若你 ItemTemplate 中的資料量很大的話,可省下的空間不可小覷。

更新過的 Default.aspx 如下:

<%@ Page Trace="true" Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html><body><form id="form1" runat="server">
    <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> <ol> </HeaderTemplate>
    <ItemTemplate>
    <asp:PlaceHolder runat="server" ID="PlaceHolder1" EnableViewState="false">
        <li><a href="<%# Eval("URL", "") %>"><%Eval("TITLE", "")%></a></li>
    </asp:PlaceHolder>
    </ItemTemplate>
    <FooterTemplate> </ol> </FooterTemplate> </asp:Repeater>
</form></body></html>

若想看由 ASP.NET 自動產生的 *.cs 程式原始碼的話,可以修改 web.config 中在 <system.web> 底下的 <compilation debug="false"> 改成 <compilation debug="true"> 後,重新執行一遍這一頁,再到 Temporary ASP.NET Files 目錄下查看產生過的原始碼即可,通常這個目錄預設會放在以下路徑:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

相關連結

  

此文章由 will 發表於 2008/11/29 上午 11:34:40

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET

標籤: , ,

收藏:

安裝 Visual Studio .NET 2003 開發主機筆記

最近接手了一個 ASP.NET 1.1 的維護案,因此架設了一台專門用來開發這網站的主機,但設定的過程中卻遇到一些阻礙,當然也一一的排除了,在此紀錄一下過程。

安裝的過程如下:

  1. 安裝 Windows Server 2003
    1. 安裝 IIS 6.0 + SMTP Service + FrontPage Server Extension
    2. 安裝 Windows Server 2003 Service Pack 2
    3. 安裝 .NET Framework 1.1
  2. 安裝 Microsoft SQL 2000 Server
    1. 安裝 Service Pack 4
  3. 安裝 Visual Studio .NET 2003 開發工具
    1. 安裝 Service Pack 1

安裝完成之後,就要設定環境了,這才是挑戰的開始。

  1. 設定資料庫 環境
    1. 將所有開發用資料庫還原
    2. 設定好正確的登入與使用者權限 [ 相關文章 ]
  2. 設定 IIS 的預設 SMTP 虛擬伺服器
    1. 修改「轉接限制」,並允許 127.0.0.1 可轉送(Relay)郵件
  3. 設定 IIS 的應用程式集區(Application Pool)
    1. 新增應用程式集區(可以共用一個集區,或一個網站一個集區,或一個服務一個集區)
  4. 設定 IIS 的網站
    1. 新增網站站台(Website)
    2. 將新增的網站站台設定「配置 Server Extension 2002」(如下圖)

      配置 Server Extension 2002
  5. 設定 Visual Studio .NET 2003 開發工具
    1. 開啟 Visual Studio .NET 2003 開發工具
    2. 新增空白方案( Blank Solution )
    3. 從網站新增現有專案 ( Add Existing Project from Web )
    4. 指定 IIS 中網站網址 http://localhost/
      Add Existing Project from Web
  6. 完工。

目前為止感覺一切都十分完美。

問題一:站台無法配置 Server Extension 2002

不過當我要新增第二個網站專案時,設定到 配置 Server Extension 2002 就發生以下錯誤:

HTTP - 401.1 未授權登入失敗

而且一直叫我輸入帳號、密碼,我打了幾十遍的密碼,總之就是無法登入成功,讓我一直無法將該站台配置 FrontPage Server Extension 的支援。東試、西試的就是無法解決登入的問題,當初一直覺得是「權限」的問題,趕最後終於在微軟技術支援網站找到解決方法,上面寫得很清楚,我就不再贅述。

問題二:站台無法重整 Server Extension 2002 Web

第一個問題解決了,又接連遇到第二個類似的問題。

我接手的專案中其實有些前人留下的 FrontPage Server Extension 相關 meta 檔,就是那些 _private, _vti_cnf, _vti_pvt, _vti_script, _vti_txt 之類的目錄,因此導致我無法從 IIS【重整 Server Extension 2002 Web】( 如下圖 )

重整 Server Extension 2002 Web

這時,只要將網站根目錄下的這些目錄直接刪除,就可以重新【配置 Server Extension 2002】了!

問題三:Visual Studio .NET 2003 中的 ASP.NET 1.1 專案無法編譯與除錯

第三個問題,就是我從 Visual Studio .NET 2003 載入專案後,網站內的 Bin\ 目錄下的 dll 雖然在專案內,但是卻無法進行建置與除錯,都顯示找不到元件的問題,而我的解決辦法就是先找到 Visual Studio .NET 2003 編譯時暫存的目錄【C:\Documents and Settings\Administrator\VSWebCache】,然後將未複製到 bin 目錄下的組件手動先 Copy 過去,就可以正常編譯與除錯了。

  

此文章由 will 發表於 2008/11/28 下午 05:26:47

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET | Visual Studio

標籤: , ,

收藏:

手邊有一張速查表(Cheat Sheets)是件很方便的事

我個人有習慣收集一些網路上別人整理的速查表,因為程式開發的細節真的太多了,要能全部背起來不太可能,也沒什麼意義,甚至於有人說程式設計就是一件查詢、複製、貼上的工作而已。對我來說,寫程式首重觀念與經驗,有了完整而正確的觀念,就算記不得要怎麼寫,查詢一下就馬上能寫了;而有了經驗,對於一些難解的 Bug 自然能夠迅速解開。

所以當我在開發網站時只要開啟速查表文件,有時後看表提醒一下用法,馬上就可以解決問題。例如:像我之前是寫 PHP 好多年之後才突然轉換到 C# / ASP.NET 的,而當初我剛學 .NET 時,對 .NET 的 String.Format 十分感冒,因為不會用,且當時輸入的範例又寫的很不清楚,有時後為了輸出一個 NT$ 1,000,000.00 這樣的格式都要寫好久,真的很氣人。直到有一天在 John Sheehan 這位仁兄的網站看到 .NET Format String Quick Reference 這份速查表文件,因為講解的仔細又有範例,讓我一下子就掌握所有 String.Format 的用法,而這份文件也是我最常用的速查表之一。

以下是我這陣子累積整理的 Cheat Sheets 相關連結,各位如果有覺得不錯的也可以推薦給我,我再放上來:

C# / .NET / LINQ 相關

Visual Studio 相關

ASP.NET 相關

SQL Server 相關

Subversion 相關

Reqular Expression 相關

CSS 相關

HTML / XML / RGB 相關

ASP / VBScript 相關

PHP 相關

JavaScript 相關

系統管理

  

此文章由 will 發表於 2008/11/27 下午 03:23:08

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET | C# | CSS | JavaScript | LINQ | PHP | Security | SQL Server | Subversion | VBA | Visual Basic | Visual Studio | Web

標籤: , , , , , , , , , , , , , , ,

收藏:

在網頁中設計 Word 格式匯出功能最簡單的方式

這其實是個很簡單的技巧,不過好像還是有些人不知道的,所以今天臨時想到就寫下來分享。不知道 Office 從何時開始支援開啟 HTML 文件,也就是說任何 HTML 的文件其實都可以在 Word 中直接開啟,甚至於你可以在瀏覽網頁時將網頁上的文字進行複製,然後到 Word 中貼上是可以保留網頁上的格式設定的。

當我們希望在網頁中提供 "Word 格式匯出" 功能時,其實最簡單的方式就是直接輸出 HTML 格式的內容,並且直接將下載檔案的副檔名改成 *.doc 即可。

若以下範例來說,<h1> 會自動轉譯成 Word 中的 "標題一" 段落樣式,而 <h2> 會動轉成 Word 中的 "標題二" 樣式。

<html>
<head>
<style> p { color: blue; } </style>
</head>
<body>
    <h1>這是文章標題</h1>
    <h2>這是文章副標題</h2>
    <hr/>
    <p>段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一段落一</p>
    <p>段落二 段落二 段落二 段落二 段落二 段落二 段落二 段落二 段落二 段落二 段落二</p>
</body>
</html>

除此之外,Word 可以認識的還不只這些,你若在網頁中設定 CSS 也是可以的,彈性十分的大。但要特別注意,載入 CSS 時不能用 Link 的方式,因為 Word 並不會載入外部的 CSS 定義檔!

而對我來說,最方便的地方莫過於寫一個【文件產生器】了,利用 HTML 產生一組文件的內容,然後用 Word 開啟後再進行後續的排版編輯、設定整體的樣式等,非常的有效率。



		
  

此文章由 will 發表於 2008/11/26 下午 11:56:00

永久連結 | 評論 (5) | 此文章的RSSRSS comment feed |

分類: ASP.NET | Web

標籤: , ,

收藏:

設定「捷徑」的快速鍵與注意事項

不知道各位知不知道「捷徑」也是可以設定「快速鍵」,這應該是幾百年前就有的功能了,我印象中之前我應該有設定過,但是怎麼設定都無效,因此而放棄。但最近又重新研究了一番,原來設定「捷徑」的「快速鍵」是有訣竅的。

基本上,我發現只有 3 個地方的「捷徑」設定快速鍵才會生效:

  1. 開始功能表
  2. 程式集
  3. 桌面

任何放在其他地方的「捷徑」所設定的「快速鍵」都不會生效!

設定快速鍵的方法也很簡單,我以「小畫家」為例,先到 [開始] -> [程式集] -> [附屬應用程式] -> [小畫家] 按滑鼠右鍵,選「內容」。

 [開始] -> [程式集] -> [附屬應用程式] -> [小畫家] 按滑鼠右鍵,選「內容」

滑鼠點一下「快速鍵」那一欄,並按下一個 P 鍵,就會自動設定快速鍵為 Ctrl + Alt + P 了,這是預設的快速鍵設定。除了 Ctrl + Alt 的組合外,你也可以利用 F1 ~ F12  或 Ctrl + F1 ~ F12 設定快速鍵。

另外還有一項限制,就是當你的視窗如果有設定過快速鍵跟你捷徑設定的快速鍵相衝突時「會以應用程式中設定的為主」。

  

此文章由 will 發表於 2008/11/25 下午 05:30:51

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: Tips

標籤: ,

收藏:

如何替網站加入 Open Search 支援

現在的網站通常都會提供搜尋的功能,因此也發展出了一個 "開放式搜尋協定" ( OpenSearch ),而所謂的 OpenSearch 其實是一個簡單的 XML 格式,用以分享搜尋的結果,或是定義該網站搜尋的方法,讓一些支援 OpenSearchOpenSearch search clients 使用,目前支援的瀏覽器有 Internet Explorer 7Firefox 2.0+,雖然我自己不常用,但我有同事很愛用,總之多提供一些服務,就多一些用戶摟。

今天我就介紹我的部落格如何加入 OpenSearch 的過程,其實非常的容易,只要你的網站本身就有搜尋功能的話,就可以輕易的加上 OpenSearch 支援。

第一步,就是先建立一份 OpenSearch description document 文件 ( XML ),像是 The Will Will Web 網站的 XML 文件格式如下:

<?xml version="1.0" encoding="UTF-8" ?> 
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">  
  <ShortName>The Will Will Web</ShortName>
  <Description>The Will Will Web provider</Description>    
  <InputEncoding>UTF-8</InputEncoding>    
  <Url type="text/html" template="http://blog.miniasp.com/search.aspx?q={searchTerms}" />    
</OpenSearchDescription>

我想光是直接看內容就不用我多說了吧?十分的淺顯易懂。裡面特別要注意的就是 {searchTerms} 變數,這就是用來搜尋你網站內容的關鍵字,透過 HTTP GET 方法傳入 QueryString 進行查詢。

準備好 OpenSearch description document 文件後,可以將該檔案儲存在網站根目錄下,然後在你網站所有網頁內的 <head> 與 </head> 中加入以下設定:

<link rel="search"
      type="application/opensearchdescription+xml" 
      href="http://blog.miniasp.com/opensearchdescription.xml"
      title="The Will Will Web" />

其中 rel type 屬性不能改,剩下的 href 就是你網站的 OpenSearch Description 內容網址,title 就是你打算使用的顯示名稱。

接著你就可以用 IE7 或 Firefox 連到你的網站,並加入到你的瀏覽器中。

我以 IE7 為例,當你來到我的網站時,點選右上角的 搜尋提供者 下拉選單,就會看到一個 The Will Will Web 的項目,該項目前面還會多出一個金黃色的圖示,切換過去就可以搜尋了。

The Will Will Web 搜尋提供者 

你也可以將該項目直接加入你的 IE 或 Firefox 的搜尋提供者。

 The Will Will Web 搜尋提供者 - 新增搜尋提供者 (IE7) The Will Will Web 搜尋提供者 - 新增搜尋提供者 (Firefox) 

在 IE7 下,我個人當然是勾選「將此搜尋提供者設定為預設」摟。

The Will Will Web 搜尋提供者 - 新增搜尋提供者 - 將此搜尋提供者設定為預設

一個小小的步驟,的確可以給許多人方便呢!

相關連結

  

此文章由 will 發表於 2008/11/24 下午 02:34:53

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: Web

標籤:

收藏:

介紹好用工具:Visual jQuery ( 超棒的 jQuery API 查詢介面 )

jQuery 最近實在是太夯了,以致於最近 jQuery 官方網站的連線速度極慢,每次開個網頁都要等個 20 ~ 30 秒,所以當要 jQuery Documentation 線上查詢 API 用法說明時,都會浪費許多等待的時間。因此我要推薦大家另一個好用網站:Visual jQuery

Visual jQuery 1.2.6 Website

Visual jQuery 是一個我非常喜愛的網站之一,此網站最大的特色之一就是整個網站利用 jQuery 寫出一個 jQuery API 查詢介面,不但查詢速度快,且介面也十分友善,對於 jQuery 的愛好者來說,絕對是個不可多得的好站。

在幾個月前,Visual jQuery 一直停留在 1.1 版,雖然大部分 API 都可以用,但的確少了許多 1.2 才出現的 API。直到最近 Visual jQuery 終於翻新到 1.2.6 最新版了,且介面上也多加了 Filter 功能,可讓你更快的找到你要的 API 說明與範例。額外提及,Visual jQuery 1.1 版也開放下載了,有需要的人也可以下載回去使用,這樣一來也可以不用侷限於網路連線的限制了,就算是舊版的,事實上大部分的 API 都還適用就是了。

這個 Visual jQuery 是由 Remy Sharp 更新過的版本(原作者為Yehuda Katz),而 Remy Sharp 還另外設計了一個 jQuery API browser,剛剛試用了一下,也覺得不錯用,也值得推薦一下。

jQuery API browser

當你連結到 jQuery API browser 之後,你其實可以在 IE7 右上角的「搜尋區」找到 jQuery API 這個搜尋提供者,並且可新增至 IE7 中,日後要搜尋 jQuery API 甚至可以直接在 IE7 的搜尋列搜尋即可,雖然我覺得這樣搜尋並沒有比較快,但也許有人有興趣這樣設定。

新增 jQuery API 搜尋提供者

相關連結

  

此文章由 will 發表於 2008/11/23 上午 12:04:36

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: JavaScript | Web | 介紹好用工具

標籤: ,

收藏:

介紹好用工具:Google Experimental search

由於我個人是極度熱愛鍵盤操作的使用者,所有的電腦操作,能不用滑鼠的地方就盡量不用,以加速我對電腦的操控速度。當然對於每天必用的 Google Search 來講,若能夠讓整個搜尋的過程不碰到滑鼠、又不要按一堆 Tab 鍵跳連結的話,那就是再好不過的事了!也因此我找到了 Google 所提供的一個實驗性的搜尋體驗計畫,稱之為 Google Experimental search 計畫,此計畫的目的就是用來提升使用者的搜尋經驗。

Google Experimental search 包括了三個子計畫,但你一次只能加入一個計畫,像我最愛的計畫就是 Keyboard shortcuts 這個子計畫,可以用鍵盤在網頁上操作所有的搜尋行為,目前提供的鍵盤操作指令有:

快速鍵 指令
J 選取下一筆結果 ( 類似 vi 的命令 )
K 選取上一筆結果 ( 類似 vi 的命令 )
O 開啟選取的結果 ( 直接轉址 )
<Enter> 開啟選取的結果 ( 直接轉址 )
/ 將游標移至搜尋框
<Esc> 將游標移至結果區 ( 好讓你可以輸入 J, K, O, 或 <Enter> 等指令 )

像我還搭配 IE7Pro網址列別名的功能,可以讓我從開啟 IE、按下 g <Enter>、然後直接搜尋結果,再用 Google Experimental search 的 Keyboard shortcuts 進行結果選取,整個過程十分的順暢,通常我上 Google 找一筆資料過程通常不花我 10 秒鐘的時間,對工作上時常搜尋資料的我來說十分有效率。

相關網站

  

此文章由 will 發表於 2008/11/22 上午 11:47:46

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: Web | 介紹好用工具

標籤: ,

收藏:

如何設定 IIS 6 讓網站應用程式運作的更穩定

最近有個客戶像我提及他們有台主機,IIS 每執行一段時間就會自動關閉,網站都連不上,他問我是不是 IIS 6 的問題?我回覆他:「要讓 IIS 6 出問題很難,通常這類的問題都是網站的 Application 出問題,才會導致網站被關閉。」但由於客戶的網站系統是一套購買來的系統,並無原始碼,也沒有修改的空間,這時若還是要提升該系統的穩定性,就必須要從「應用程式集區」下手。

首先,先找到你網站的所屬的應用程式集區(Application Pool)

先找到你網站的所屬的應用程式集區(Application Pool)

接者進行該應用程式集區的相關設定

網際網路資訊服務 (IIS) 管理員 ::: 應用程式集區 ::: DefaultAppPool ::: 內容 

網際網路資訊服務 (IIS) 管理員 ::: 應用程式集區 ::: DefaultAppPool ::: 內容  ::: 回收處理

如上圖紅線框住的地方,就是提升系統穩定性的關鍵,預設來說是不用設定這些參數的,但是當應用系統不穩定時,才有必要設定這些參數,讓系統能夠在服務特定次數後或設定特定時間進行回收(Recycle)動作,這裡的回收意思是指重新啟動應用程式集區的工作處理程序(Worker Process)(w3wp.exe)

這些參數的說明,可以在此頁按下 F1 即可跳出完整的說明,以下我將說明列出,並標注重點與註釋如下。


應用程式集區 - 回收處理索引標籤

使用此索引標籤管理工作者處理序的回收。在工作者處理序隔離模式中,您可以將 IIS 設定為在應用程式集區中定期重新啟動工作者處理序,讓您更精確地管理有瑕疵的工作者處理序。這樣確保這些集區中的指定應用程式保持狀態,而且系統資源得到恢復。

為了回收工作者處理序,將限制有錯誤的工作者處理序接收要求的能力,直到它處理完在要求佇列中儲存的所有剩餘要求。為了消耗其目前要求,將提供該處理序一個設定限制。在舊的工作者處理序停止之前,會啟動相同名稱區群組的替代工作者處理序。這可以防止服務中斷舊的處理序完成其待處理的要求,然後正常關閉,或者如果它在可設定的時間限制、要求數、設定排程之後,或達到指定的記憶體用量限制時仍未關閉,則會明確地終止該處理序。

回收工作者處理序 (分鐘)

選取即可在特定的不活動期限後回收工作者處理序。

回收工作者處理序 (要求數)

選取即可在特定數量的要求後回收工作者處理序。
(注: 這裡的要求是指 HTTP Requests,當網站接受超過特定要求後就自動回收的意思)

在下列時間回收工作者處理序

選取即可使用排程策略來關閉處理序並啟動替代處理序

  • 新增
            按一下即可將一天中的某個時間新增到排程式工作者處理序回收條件中。
  • 移除
            按一下即可移除工作者處理序回收的目前選取排程條件。
  • 編輯
            按一下即可修改工作者處理序回收的目前選取排程條件。

在耗盡太多記憶體後回收工作者處理序

此選項允許使用記憶體消耗限制配置,以關閉處理序啟動替代處理序。這些設定控制當工作者處理序使用的虛擬記憶體(virtual memory)專用記憶體(private memory),相對於系統記憶體總量(total system memory)變得過高時的記憶體回收臨界值。記憶體式回收適用於減少區段堆(heap fragmentation),以及從流失記憶體(memory leak)的應用程式回收記憶體。

最大虛擬記憶體

選取即可設定工作者處理序在回收之前,可以使用的最大系統共用虛擬記憶體數 (以 MB 計)。

如果輸入的值太大,則會嚴重地降低系統效能。開始時應使用預設值,然後在維護良好效能的同時盡可能降到最小值。

最大已使用記憶體

選取即可設定工作者處理序在回收之前,可以使用的最大私人配置系統實體記憶體數 (以 MB 計)。

如果輸入的值太大,則會嚴重地降低系統效能。開始時應使用預設值,然後在維護良好效能的同時盡可能降到最小值。


老實說,有些翻譯看起來很累且難以理解,所以難怪明明有很多系統文件可看,但大家都不看的原因。

相關連結

  

此文章由 will 發表於 2008/11/21 下午 04:24:02

永久連結 | 評論 (1) | 此文章的RSSRSS comment feed |

分類: ASP.NET | IIS | 系統管理

標籤: , ,

收藏: