安装包制作点滴

ASP。NET程序作安装包时,会遇上两个大问题,一是网站配置,二是数据库安装。几天研究后,写点心得

1.网站配置

    有几个棘手的问题,1.新建站点,要分XP系统和WIN2000/2003系统,XP系统下的IIS只能是配置到默认站点或新建虚拟站点。2.设置站点路径。3.设置站点权限,如很多时候都需要写入权限。4.设置默认文档。5.设置ASP。NET版本

    解决办法:使用微软给我们提供的好东西iisweb.vbs,所在路径:c:/windows/system32/iisweb.vbs。设置默认文档和权限可以用DirectoryEntry对象来解决。

  1. DirectoryEntry root = new DirectoryEntry(iis0);
  2. root.Properties["AccessWrite"][0] = true;
  3. root.Properties["DefaultDoc"].Value = "Default.aspx";
  4. root.CommitChanges();

 

2.数据库配置

    使用ADO来解决这个问题,使用一个SQL工具,把数据库表、初始数据生成为SQL脚本,用ADO来执行脚本。而如果使用OSQL。EXE,会有文件大小的限制。如果需要使用简版数据库,可以统一把SQL实例建到./SQLEXPRESS,因为简版SQL连接必须使用./SQLEXPRESS.如果是企业版,还需要重启服务。如果需要使用自定义的SQL帐户,此时SQL还有一个问题,权限的问题,SQL2005默认不可以连接,这时需要修改注册表,使用混合认证。HKEY_LOCAL_MACHINE/Software/Microsoft/Microsoft SQL Server/MSSQL.1/MSSQLServer下修改键LoginMode 值2

  1. #region 初始化数据库
  2.         private void ReStartSqlServer()
  3.         {
  4.             Process p = new Process();
  5.             p.StartInfo.FileName = "cmd.exe";
  6.             p.StartInfo.UseShellExecute = false;
  7.             p.StartInfo.RedirectStandardInput = true;
  8.             p.StartInfo.RedirectStandardOutput = true;
  9.             p.StartInfo.RedirectStandardError = true;
  10.             p.StartInfo.CreateNoWindow = true;
  11.             p.Start();
  12.             p.StandardInput.WriteLine("net stop mssql$sqlexpress");
  13.             p.StandardInput.WriteLine("exit");
  14.             p.WaitForExit();
  15.             p.Close();
  16.             p.Start();
  17.             p.StandardInput.WriteLine("net start mssql$sqlexpress");
  18.             p.StandardInput.WriteLine("exit");
  19.             p.WaitForExit();
  20.             p.Close();
  21.         }
  22.         public void CreateDbByExcuteSQL()
  23.         {
  24.             string connStr = @"server=./SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI";
  25.             StringBuilder sb = GetSqlFile(physicaldir + @"DBDATA/createdatabase0.sql");
  26.             try
  27.             {
  28.                 ExecuteSql(connStr, sb.ToString());
  29.                 sb = this.GetSqlFile(physicaldir + @"DBDATA/createdatabase1.sql");
  30.                 ExecuteSql(connStr, sb.ToString());
  31.             }
  32.             catch (Exception ex)
  33.             {
  34.                 throw ex;
  35.             }
  36.         }
  37.         private int ExecuteSql(string connStr, string sql)
  38.         {
  39.             SqlConnection conn = new SqlConnection(connStr);
  40.             SqlCommand cmd = new SqlCommand(sql, conn);
  41.             conn.Open();
  42.             try
  43.             {
  44.                 return cmd.ExecuteNonQuery();
  45.             }
  46.             catch(Exception ex)
  47.             {
  48.                 throw ex;
  49.             }
  50.             finally
  51.             {
  52.                 conn.Close();
  53.             }
  54.         }
  55.         private StringBuilder GetSqlFile(string pFileName)
  56.         {
  57.             StringBuilder sqlTemp = new StringBuilder();
  58.             sqlTemp.Append(File.ReadAllText(pFileName, System.Text.Encoding.GetEncoding("GB2312")));
  59.             return sqlTemp;
  60.         }
  61.         #endregion
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值