日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改)

發(fā)布時(shí)間:2023/11/30 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
站點(diǎn): 如果新建默認(rèn)的Web安裝項(xiàng)目,那它將創(chuàng)建的默認(rèn)網(wǎng)站下的一個(gè)虛擬應(yīng)用程序目錄而不是一個(gè)新的站點(diǎn)。故我們只有創(chuàng)建新的安裝項(xiàng)目,而不是Web安裝項(xiàng)目。然后通過安裝類進(jìn)行自定義操作,創(chuàng)建新站如下圖:

2、創(chuàng)建新的安項(xiàng)目之后,在(文件系統(tǒng)編輯器)里的應(yīng)用程序文件夾里,添加ASP.net2.0的項(xiàng)目輸出(還有第二種方法是用ASP.NET2.0發(fā)布網(wǎng)站到一個(gè)文件夾下面,再把這個(gè)文件夾下面所有文件復(fù)制粘貼過來,這樣生成的安裝文件,在安裝之后就沒有源代碼文件了,我自己就是這樣做的)如下圖:

圖1下圖的MyPojectSetup項(xiàng)目下已有了Web項(xiàng)目的輸出,以及一個(gè)SQL腳本(SQL腳本是通SQL2005生成的,將在安裝類庫(kù)里要使用的)

圖2文件系統(tǒng)左邊界面,添加了Web項(xiàng)目輸出

2.2添加完項(xiàng)目輸出之后,需要設(shè)置安裝界面。我們的要求是第一、建一個(gè)新站點(diǎn),所以需要所安裝的IIS服務(wù)器地址,以及新站點(diǎn)的端口。第二、需要數(shù)據(jù)庫(kù)的地址,新建的數(shù)據(jù)庫(kù)名稱,以及訪問數(shù)據(jù)庫(kù)的用戶名和密碼兩項(xiàng)(需要有創(chuàng)庫(kù)權(quán)限的)。

如圖1在文件系統(tǒng)編輯器右邊,選擇用戶界面,然后看到如下:

在啟動(dòng)選擇單擊右擊菜單,添加對(duì)話框A,并在對(duì)話框A上單擊右鍵=》上移到安裝文件夾的上面:

再次設(shè)置右邊屬性,文本框A是站點(diǎn)信息輸入如下信息,其中Edit1Property是一個(gè)需要傳入安裝類的參數(shù)。

按照以上方式再添加文本框B并移到文本框A的下面,如下圖所示

注意:如上所示安裝項(xiàng)目基本的事情已經(jīng)做完了,但還有最后一個(gè)步驟沒有做,那就是自定義操作,也就安裝的重中之重的事情,安裝類庫(kù)的創(chuàng)建,如3點(diǎn)所示。創(chuàng)建安裝類庫(kù)之后就需要把它的輸出來添加到安裝項(xiàng)目里如同Web項(xiàng)目,然后設(shè)置自定義活動(dòng)為這個(gè)項(xiàng)目就可以,詳情在下面介紹。

3、需要?jiǎng)?chuàng)建一個(gè)安裝類庫(kù),里面把Class1.cs刪除,再添加一個(gè)新的安裝文件。安裝項(xiàng)目所有的自定義都是在這里用編碼完成的(包括數(shù)據(jù)庫(kù)生成,虛擬站點(diǎn)創(chuàng)建,IIS屬性修改,Web.Config文件修改)。也就是說,安裝項(xiàng)目是個(gè)外殼,通過創(chuàng)建一些界面接收用戶參數(shù),然后利用這個(gè)安裝類庫(kù),提供的功能,進(jìn)行自己的操作。

?

4、安裝程序類新建之后,雙擊進(jìn)入代碼狀態(tài),用override重載Install函數(shù)如下所示:

?

using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Configuration.Install;

namespace?MyProjectInstall
{
????[RunInstaller(
true)]
????
public?partial?class?InstallerMySample?:?Installer
????
{
????????
public?InstallerMySample()
????????
{
????????????InitializeComponent();
????????}


????????
public?override?void?Install(System.Collections.IDictionary?stateSaver)
????????
{

????????}

????}

}

?

安裝數(shù)據(jù)庫(kù)的代碼如下,其中用了兩種方法,一種是用SQL命令方式創(chuàng)建數(shù)據(jù)庫(kù),另一種是調(diào)用osql命令執(zhí)行腳本,創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)等,最后用命令追加一條記錄.

?

?????數(shù)據(jù)庫(kù)操作

?修改Web.Config配置的代碼如下:

?WriteWebConfig?修改web.config的連接數(shù)據(jù)庫(kù)的字符串

創(chuàng)建IIS站點(diǎn)的代碼如下(注我也是從網(wǎng)找到的,其中CreateNewWebsit這個(gè)方法中我加了IIS參數(shù)設(shè)置的代碼,也就是在創(chuàng)建IIS時(shí)一并設(shè)置了):

注意這一句:string fileName = Environment.GetEnvironmentVariable("windir") + @"/Microsoft.NET/Framework/v2.0.50727/ASPnet_regiis.exe";原因是當(dāng)你不管是手動(dòng)還是自動(dòng)創(chuàng)建一個(gè)新站點(diǎn),在它的屬性頁(yè)ASP.NET設(shè)置里都會(huì)有1.1版和2.0版這個(gè)選項(xiàng),默認(rèn)是1.1,現(xiàn)在我要部署2.0所以在默認(rèn)情況下就不能夠一步到位,安裝完就可以訪問執(zhí)行,而要去設(shè)置成2.0才行.所以要調(diào)用FrameworkV2.0下的regiis.exe得新注冊(cè)一下我們指定的虛擬目錄,使它是2.0.?

using?System;
using?System.DirectoryServices;
using?System.Collections;
using?System.Text.RegularExpressions;
using?System.Text;
using?System.Runtime;
using?System.Diagnostics;
/**
?*?@author?吳海燕
?*?@email??wuhy80-usual@yahoo.com
?*?2004-6-25?第一版
?
*/


namespace?Wuhy.ToolBox
{
????
///?<summary>
????
///??這個(gè)類是靜態(tài)類。用來實(shí)現(xiàn)管理IIS的基本操作。
????
///??管理IIS有兩種方式,一是ADSI,一是WMI。由于系統(tǒng)限制的原因,只好選擇使用ADSI實(shí)現(xiàn)功能。
????
///??這是一個(gè)遺憾。只有等到只有使用IIS?6的時(shí)候,才有可能使用WMI來管理系統(tǒng)
????
///??不過有一個(gè)問題就是,我現(xiàn)在也覺得這樣的一個(gè)方法在本地執(zhí)行會(huì)比較的好。最好不要遠(yuǎn)程執(zhí)行。
????
///??因?yàn)槟菢有枰加孟喈?dāng)數(shù)量的帶寬,即使要遠(yuǎn)程執(zhí)行,也是推薦在同一個(gè)網(wǎng)段里面執(zhí)行
????
///?</summary>

????public?class?IISAdminLib
????
{
????????
UserName,Password,HostName的定義

????????
根據(jù)路徑構(gòu)造Entry的方法

????????
添加,刪除網(wǎng)站的方法



????????
Start和Stop網(wǎng)站的方法
????????
????????
確認(rèn)網(wǎng)站是否相同

????????
獲取一個(gè)網(wǎng)站編號(hào)的方法????????

????????
獲取新網(wǎng)站id的方法
????}

????
????
新網(wǎng)站信息結(jié)構(gòu)體
}

?

最后重載的InStall函數(shù)如:

?

????public?override?void?Install(IDictionary?stateSaver)
????????
{
????????????
//數(shù)據(jù)庫(kù)安裝程序入口
????????????_saPassword?=?this.Context.Parameters["pwd"];
????????????_dataBaseName?
=?this.Context.Parameters["dbname"];
????????????_targetPath?
=?this.Context.Parameters["targetdir"];
????????????_servername?
=?this.Context.Parameters["server"];
????????????_username?
=?this.Context.Parameters["user"];

????????????iis?
=?this.Context.Parameters["iis"];
????????????port?
=?this.Context.Parameters["port"];
????????????
//添加數(shù)據(jù)庫(kù)
????????????AddDBTable();

????????????
//注冊(cè)新站點(diǎn)????????????
????????????Wuhy.ToolBox.NewWebSiteInfo?siteInfo?=?new?Wuhy.ToolBox.NewWebSiteInfo(string.Empty,?port,?"",?"VideoMeeting",?_targetPath);
????????????Wuhy.ToolBox.IISAdminLib.HostName?
=?iis;
????????????Wuhy.ToolBox.IISAdminLib.UserName?
=?null;???????

????????????Wuhy.ToolBox.IISAdminLib.CreateNewWebSite(siteInfo);

????????????Wuhy.ToolBox.IISAdminLib.StartWebSite(siteInfo.BindString);
????????????
????????????
//修改Web.Config文件
????????????if?(!WriteWebConfig())
????????????
{
????????????????
throw?new?ApplicationException("設(shè)置數(shù)據(jù)庫(kù)連接字符串時(shí)出現(xiàn)錯(cuò)誤");
????????????}

????????}

總結(jié)

以上是生活随笔為你收集整理的VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。