6tl4 发表于 2015-11-3 12:42:15

[ASP.net WebForm] 在Windows7上架ASP.net網站(適用WinServer2008)

在Windows7上架ASP.net網站(適用WinServer2008)

說明以下的Demo 環境
OS:Windows 7 64bit
DB:SQL Server 2008 (和IIS在同一台電腦上)

1. 要在Windows7上架ASP.net網站前要先啟動安裝IIS
控制台>程式和功能>開啟或關閉Windows功能

然後按「確定」
※WindowsServer 2008 IIS的位置
2. 使用Windows系統管理員的權限,安裝.net framework(本Demo待會要架.net4開發的網站,所以以.net framework4為例)
Microsoft.NET Framework 4 (獨立安裝程式)
※如果1、2步驟安裝相反的話,請這樣做
打開『命令提示視窗』,到『C:\Windows\Microsoft.NET\Framework64\v2.0.50727』和『C:\Windows\Microsoft.NET\Framework64\v4.0.30319』底下,
輸入『aspnet_regiis -i』向IIS伺服器註冊.net framework

(如果不確定當初1、2步驟安裝順序的話,也可以執行以上指令)


3. 因為要讓外部連到網站
所以到控制台>Windows防火牆>進階設定
左方「輸入規則」把80 port打開(實務上這裡指的是AP Server)

因為實務上,AP Server架網站,DB Server架SQL Server
所以接下來假設網站要存取另一台電腦上的SQL Server

所以DB Server的Port(預設1433)也要打開
請在DB Server的電腦進到Windows防火牆>右方「新增規則」

選「連接埠」

輸入「1433」

「允許連線」


規則名稱請自行命名

如此Windows防火牆的設定完畢。

4. 接著要再設定SQL Server組態,讓它可以允許網站程式連接SQL Server
(實務上,這裡是DB Server的操作)

確保以下SQL Server和SQL Server Browser都有執行

Shared memory、TCP/IP、具名管道都有啟用


SQL Server網路組態的TCP/IP>內容

IP位址>TCP動態通訊埠清空>TCP通設埠設1433後按「確定」


















3和4的步驟完成後,網站和SQL Server應該就可以溝通了.

5. 架設ASP.net 站台
系統管理工具>IIS管理員>新增網站
※因為我曾經遇過客戶提供的環境把系統管理工具隱藏起來(自訂開始功能表也找不到)的狀況,所以再提供一個找到IIS管理員的方法:
我的電腦>右鍵>管理>服務與應用程式>IIS管理員



(本Demo未輸入主機名稱),按下「確定」
※如果一台電腦上要架設多個站台的話,請確保每個站台的連接埠不一樣或每個站台的主機名稱(DomainName)不一樣,網站才執行得起來
接下來要設定「預設文件」,目的是為了當使用者輸入一個DomainName的URL或輸入一個目錄名稱,預設要導向的網頁
※「預設文件」不設定沒關係,但就要啟用「瀏覽目錄」的功能(但不建議這樣做,因為會讓使用者知道你的網站架構),所以以下Demo有把「瀏覽目錄」功能「停用」

左鍵Click進入


左鍵Click進入

要測試網站有沒有架設成功,可以左鍵點選站台名稱後>「瀏覽*:80(http)」

有看到畫面代表成功了(以下Hello World的字串為從資料庫撈出來的字串)

本Demo剛剛沒有輸入DomainName,所以是http://localhost(或自己電腦的IP位址)
如果剛剛有輸入DomainName的話,可以直接在瀏覽器上輸入DomainName試試看網站是否成功被執行

以下附上該網站的Web.config設定(因為IIS有設定預設文件,所以defaultDocument區塊會被自動追加修改)
<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>





<configuration>
<connectionStrings>

    <!--資料庫的連線字串,Data Source為DB Server的IP位址-->
    <!--Initial Catalog為預設資料庫-->

    <!--Uid和Pwd請分別輸入SQL Server驗證登入的帳號和密碼-->
    <add name=&quot;connStr&quot; connectionString=&quot;Data Source=192.168.1.9;Initial Catalog=Northwind;Uid=test;Pwd=test;Max pool Size=300&quot; providerName=&quot;System.Data.SqlClient&quot; />

</connectionStrings>
    <system.web>

      <compilation debug=&quot;false&quot; targetFramework=&quot;4.0&quot; />
    </system.web>

    <system.webServer>
      <defaultDocument>

            <files>
                <add value=&quot;index.aspx&quot; />

            </files>
      </defaultDocument>

    </system.webServer>


</configuration>

6.其他
如果要修改該網站的DomainName的話,請到該站台的「繫結」




如果要修改該網站使用的應用程式集區:



以上上圖ASP.net v4.0為整合式
ASP.net v4.0 Classic為傳統式
如果發生錯誤
偵測出 ASP.NET設定沒有套用到整合式 Managed 管線模式
此為應用程式集區整合式和傳統式的問題,請參考此篇的解法:部署ASP.net Web Site問題集合
※請一定要注意,.net 4開發的網站就應該跑在.net 4版本的應用程式集區,非.net 4開發的網站就不要用ASP.net v4.0和ASP.net v4.0 Classic應用程式集區
否則會發生Server ApplicationUnavailable 或 伺服器應用程式無法使用的錯誤
解法和說明請參考此篇的常見問題4:ASP.NET 4.0安裝在 IIS6 最常遇到的四個問題

以上,正式部署網站時,本人大概就是如此架設
如果是本機練習的話,因為不可能有DomainName,要用不同的連接埠進到不同的網站要記Port號碼又麻煩
所以練習測試環境的話,可以這樣架設多個「應用程式」

1. 把「預設站台」啟動

2. 修改「預設站台」的應用程式集區


3. 新增應用程式
※虛擬目錄只能執行靜態網頁,應用程式可以執行動態網頁,如果不小心架成虛擬目錄的話,待會也可以對著虛擬目錄右鍵>轉換成應用程式


4 左鍵應用程式>測試與執行


可以照著此方法,新增多個應用程式,URL就會是http://本機電腦的IP位址/應用程式名稱
之後的各項設定跟站台類似,就不再累述,但切記站台所做的變更,底下的「應用程式」會跟著繼承

※最後印象中如果64位元的環境會執行到32位元應用程式的話
請到應用程式集區設定




※2011.11.24追記:
針對要上傳檔案的目錄要新增寫入的權限
權限名稱請參考:介紹 IIS 7.5的應用程式集區與新增的「虛擬帳戶」特性 (【IIS AppPool\應用程式集區名稱】)
如果ASP.NET 想把檔案寫入到網路芳鄰的分享目錄的話,請參考:ASP.NET如何將檔案寫入到網路芳鄰的分享目錄
(只是我只完成1、2、3、6的步驟並把File目錄開成「共用」就行了)
※2011.12.18 追記: SQL Server 2008新增允許遠端登入帳號
※2012.5.1追記:IIS應該啟用的功能設定
啟用 IIS7 (含 ASP.NET 與 WCF HTTP 啟動、靜態內容、IIS 管理主控台與選用的 CGI)。

[*]Windows 7
1.    在 [開始] 功能表中,依序選取 [控制台] | [程式] | [程式和功能]。
2.    按一下 [開啟或關閉 Windows 功能]。
3.    在 Microsoft .NET Framework 3.5 下,選取 。
4.    在 Internet Information Services 底下,展開 [全球資訊網服務] 和 [應用程式開發功能],然後選取 和 。
5.    在 Internet Information Services 底下,展開 [全球資訊網服務] 和 [一般 HTTP 功能],然後選取 [靜態內容]。
6.    在 [網際網路資訊服務] 下,展開 ,然後選取 。
7.    安裝選取的功能。

[*]Windows Server 2008
1.    在 [開始] 功能表中,依序選擇 [程式集]、[系統管理工具] 和 [伺服器管理員]。
2.    在 [伺服器管理員] 中 [功能摘要] 底下,選取 [新增功能]。
3.    在 [新增功能] 對話方塊中 [.NET Framework 3.0 功能] 底下,選取 [.NET Framework 3.0]。在 底下,選取 。按 [下一步] 按鈕進行安裝。
4.    在 [伺服器管理員] 中 [角色摘要] 底下,確認 [網頁伺服器 (IIS)] 有出現在可用角色的清單中。如果沒有出現,請按一下 [新增角色],安裝 Internet Information Services。
5.    在 [伺服器管理員] 中 [角色摘要] 底下,按一下 [網頁伺服器 (IIS)]。
6.    在 [網頁伺服器 (IIS)] 管理視窗中,按一下 [新增角色服務]。
7.    在 [新增角色服務] 對話方塊中,依序展開 [網頁伺服器] 和 [應用程式開發],然後選取 和 。
8.    在 [新增角色服務] 對話方塊中,依序展開 [網頁伺服器] 和 [一般 HTTP 功能],選取 [靜態內容],然後按 [下一步] 按鈕進行安裝。
页: [1]
查看完整版本: [ASP.net WebForm] 在Windows7上架ASP.net網站(適用WinServer2008)