VS2005 ASP.NET2.0安裝項目的制作(包括數據庫創建、站點創建、IIS屬性修改、Web.Config文件修改)

站點: 如果新建默認的Web安裝項目,那它將創建的默認網站下的一個虛擬應用程序目錄而不是一個新的站點。故我們只有創建新的安裝項目,而不是Web安裝項目。然后通過安裝類進行自定義操作,創建新站如下圖:

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

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

圖2文件系統左邊界面,添加了Web項目輸出

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

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

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

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

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

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

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

?

4、安裝程序類新建之后,雙擊進入代碼狀態,用override重載Install函數如下所示:

?

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)
????????
{

????????}

????}

}

?

安裝數據庫的代碼如下,其中用了兩種方法,一種是用SQL命令方式創建數據庫,另一種是調用osql命令執行腳本,創建數據表結構等,最后用命令追加一條記錄.

?

?????數據庫操作

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

?WriteWebConfig?修改web.config的連接數據庫的字符串

創建IIS站點的代碼如下(注我也是從網找到的,其中CreateNewWebsit這個方法中我加了IIS參數設置的代碼,也就是在創建IIS時一并設置了):

注意這一句:string fileName = Environment.GetEnvironmentVariable("windir") + @"/Microsoft.NET/Framework/v2.0.50727/ASPnet_regiis.exe";原因是當你不管是手動還是自動創建一個新站點,在它的屬性頁ASP.NET設置里都會有1.1版和2.0版這個選項,默認是1.1,現在我要部署2.0所以在默認情況下就不能夠一步到位,安裝完就可以訪問執行,而要去設置成2.0才行.所以要調用FrameworkV2.0下的regiis.exe得新注冊一下我們指定的虛擬目錄,使它是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>
????
///??這個類是靜態類。用來實現管理IIS的基本操作。
????
///??管理IIS有兩種方式,一是ADSI,一是WMI。由于系統限制的原因,只好選擇使用ADSI實現功能。
????
///??這是一個遺憾。只有等到只有使用IIS?6的時候,才有可能使用WMI來管理系統
????
///??不過有一個問題就是,我現在也覺得這樣的一個方法在本地執行會比較的好。最好不要遠程執行。
????
///??因為那樣需要占用相當數量的帶寬,即使要遠程執行,也是推薦在同一個網段里面執行
????
///?</summary>

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

????????
根據路徑構造Entry的方法

????????
添加,刪除網站的方法



????????
Start和Stop網站的方法
????????
????????
確認網站是否相同

????????
獲取一個網站編號的方法????????

????????
獲取新網站id的方法
????}

????
????
新網站信息結構體
}

?

最后重載的InStall函數如:

?

????public?override?void?Install(IDictionary?stateSaver)
????????
{
????????????
//數據庫安裝程序入口
????????????_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"];
????????????
//添加數據庫
????????????AddDBTable();

????????????
//注冊新站點????????????
????????????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("設置數據庫連接字符串時出現錯誤");
????????????}

????????}
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389212.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker的基本命令

docker的三大核心&#xff1a;倉庫(repository),鏡像(image),容器(container)三者相互轉換。 1、鏡像(image) 鏡像&#xff1a;組成docker容器的基礎.類似安裝系統的鏡像 docker pull tomcat 通過pull來下載tomcat docker push XXXX 通過push的方式發布鏡像 2、容器(container)…

seaborn添加數據標簽_常見Seaborn圖的數據標簽快速指南

seaborn添加數據標簽In the course of my data exploration adventures, I find myself looking at such plots (below), which is great for observing trend but it makes it difficult to make out where and what each data point is.在進行數據探索的過程中&#xff0c;我…

使用python pandas dataframe學習數據分析

?? Note — This post is a part of Learning data analysis with python series. If you haven’t read the first post, some of the content won’t make sense. Check it out here.Note? 注意 -這篇文章是使用python系列學習數據分析的一部分。 如果您還沒有閱讀第一篇文…

實現TcpIp簡單傳送

private void timer1_Tick(object sender, EventArgs e) { IPAddress ipstr IPAddress.Parse("192.168.0.106"); TcpListener serverListener new TcpListener(ipstr,13);//創建TcpListener對象實例 ser…

SQLServer之函數簡介

用戶定義函數定義 與編程語言中的函數類似&#xff0c;SQL Server 用戶定義函數是接受參數、執行操作&#xff08;例如復雜計算&#xff09;并將操作結果以值的形式返回的例程。 返回值可以是單個標量值或結果集。 用戶定義函數準則 在函數中&#xff0c;將會區別處理導致語句被…

無向圖g的鄰接矩陣一定是_矩陣是圖

無向圖g的鄰接矩陣一定是To study structure,tear away all flesh soonly the bone shows.要研究結構&#xff0c;請盡快撕掉骨頭上所有的肉。 Linear algebra. Graph theory. If you are a data scientist, you have encountered both of these fields in your study or work …

移動pc常用Meta標簽

移動常用 <meta charset"UTF-8"><title>{$configInfos[store_title]}</title><meta content"widthdevice-width,minimum-scale1.0,maximum-scale1.0,shrink-to-fitno,user-scalableno,minimal-ui" name"viewport"><m…

前端繪制繪制圖表_繪制我的文學風景

前端繪制繪制圖表Back when I was a kid, I used to read A LOT of books. Then, over the last couple of years, movies and TV series somehow stole the thunder, and with it, my attention. I did read a few odd books here and there, but not with the same ferocity …

Rapi

本頁內容 ●引言●SMARTPHONE SDK API 庫●管理設備中的目錄文件●取系統信息●遠程操作電話和短信功能 Windows Mobile日益成熟&#xff0c;開發者隊伍也越來越壯大。作為一個10年的計算機熱愛者和程序員&#xff0c;我也經受不住新技術的誘惑&#xff0c;倒騰起Mobile這個玩具…

android 字符串特殊字符轉義

XML轉義字符 以下為XML標志符的數字和字符串轉義符 " ( 或 &quot;) ( 或 &apos;) & ( 或 &amp;) lt(<) (< 或 <) gt(>) (> 或 >) 如題&#xff1a; 比如&#xff1a;在string.xml中定義如下一個字符串&#xff0c;…

如何描繪一個vue的項目_描繪了一個被忽視的幽默來源

如何描繪一個vue的項目Source)來源 ) Data visualization is a great way to celebrate our favorite pieces of art as well as reveal connections and ideas that were previously invisible. More importantly, it’s a fun way to connect things we love — visualizing …

數據存儲加密和傳輸加密_將時間存儲網絡應用于加密預測

數據存儲加密和傳輸加密I’m not going to string you along until the end, dear reader, and say “Didn’t achieve anything groundbreaking but thanks for reading ;)”.親愛的讀者&#xff0c;我不會一直待到最后&#xff0c;然后說&#xff1a; “沒有取得任何開創性的…

熊貓分發_熊貓新手:第一部分

熊貓分發For those just starting out in data science, the Python programming language is a pre-requisite to learning data science so if you aren’t familiar with Python go make yourself familiar and then come back here to start on Pandas.對于剛接觸數據科學的…

多線程 進度條 C# .net

前言  在我們應用程序開發過程中&#xff0c;經常會遇到一些問題&#xff0c;需要使用多線程技術來加以解決。本文就是通過幾個示例程序給大家講解一下多線程相關的一些主要問題。 執行長任務操作  許多種類的應用程序都需要長時間操作&#xff0c;比如&#xff1a;執行一…

window 10 多版本激活工具

window 10 通用版激活工具 云盤地址&#xff1a;https://pan.baidu.com/s/1bo3L4Kn 激活工具網站&#xff1a;http://www.tudoupe.com/win10/win10jihuo/2017/0516/6823.html 轉載于:https://www.cnblogs.com/ipyanthony/p/9288007.html

android 動畫總結筆記 一

終于有時間可以詳細去了解一下 android動畫&#xff0c;先從android動畫基礎著手。在android 3.0之前android動畫api主要是android.view.Animation包下的內容&#xff0c;來先看看這個包里面主要的類![Animation成員](https://img-blog.csdn.net/20150709115201928 "Anima…

《Linux內核原理與分析》第六周作業

課本&#xff1a;第五章 系統調用的三層機制&#xff08;下&#xff09; 中斷向量0x80和system_call中斷服務程序入口的關系 0x80對應著system_call中斷服務程序入口&#xff0c;在start_kernel函數中調用了trap_init函數&#xff0c;trap_init函數中調用了set_system_trap_gat…

使用C#調用外部Ping命令獲取網絡連接情況

使用C#調用外部Ping命令獲取網絡連接情況 以前在玩Windows 98的時候&#xff0c;幾臺電腦連起來&#xff0c;需要測試網絡連接是否正常&#xff0c;經常用的一個命令就是Ping.exe。感覺相當實用。 現在 .net為我們提供了強大的功能來調用外部工具&#xff0c;并通過重定向輸…

Codeforces Round 493

心情不好&#xff0c;被遣散回學校 &#xff0c;心態不好 &#xff0c;為什么會累&#xff0c;一直微笑就好了 #include<bits/stdc.h> using namespace std; int main() {freopen("in","r",stdin);\freopen("out","w",stdout);i…