《双服务器或多服务器夜间自动备份问题的解决方案13946.pdf》由会员分享,可在线阅读,更多相关《双服务器或多服务器夜间自动备份问题的解决方案13946.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、双服务器或多服务器夜间自动备份问题的解决方案 背景 一些公司为了安全及保险起见,常在网络上有两个服务器,对外提供互联网相关应用服务。一种可能的应用是:服务器 A 作为主服务器,对外提供网络服务,比如 IIS 网站服务,而另一台服务器 B 则作为数据库服务器或辅服务器(也可能是备份服务器)。当服务器 A 因为某种原因发生故障时,服务器 B 马上顶替服务器 A,这样不会导致网络服务的中断。问题 1、两台服务器之间的自动备份的问题 如何实现两台服务器之间的自动备份是网管们经常遇到的问题。比如:我们需要在夜间或服务器相对闲暇时,自动将服务器 A 中指定目录下的重要数据备份到服务器 B 中某个指定的目录
2、中。2、隔 N 天备份到不同目录的问题 有时,我们也可能遇到将服务器进行隔 N 天进行自动备份,同时又希望某一天的数据备份到另一个与上一天完全不同的目录中,这样,一旦万一出现某种错误,仍然可以做上一天的目录中恢复相关数据。这里讲的是“万一”,不怕一万,就怕万一。安全第一呀,呵!3、多服务器间日期自动校对的问题 由于服务器长时间运行,不同服务器可能会出现时间不一致的情况。而有时,可能对时间的要求也比较严格,需要有一个统一的时间标准,在一些特定的应用领域,比如金融、财经等,需要各服务器的时间保持高度的一致性。如何自动将多台服务器的时间校正为某一台服务器的时间呢?解决 这里仅就两台服务器的自动备份问
3、题进行方法阐述。任何实现方法都是有一定条件的,本解决之道也不例外。首先,我们这里所讲的服务器,必须是在同一局域网内或相互之间是可以访问。现实的情况是,一个中小型企业的服务器一般会将服务器托管到一个相同的 IDC 服务商那里。当然也有例外这个你就别与我没完没了地“钻牛角尖”了,我这里只讲技术问题,嘿嘿 其次,必须有相关访问权限。好了,如果都有,我们继续。先在服务器 B 中建立多个备份用的文件目录,这些目录用来备份主服务器上的相关目录的重要资料。为了方便描述,我这里仅用两个目录,分别是 Even 和 Odd,前者用来备份双日(比如 9 月 10 日)的,后者用来备份单日(比如 9 月 11 日,哇
4、,真巧,911!)的数据资料。分别将两个目录共享出来,记得设置好相应的共享权限,特别建议设置一个用于备份的特别的用户帐号,并设置好密码具体怎么建,这个别问我,太基础了。进入服务器 A 某个目录中(比如:C:CopyTask目录下),建立用于备份的批处理文件CopyAToB_Even.bat 及 CopyAToB_Odd.bat,具体文件名,你自己取,但文件后缀名请使用.bat(这是一个批处理文件)。CopyAToB_Even.bat 的内容为:xcopy E:yourDir BServerNameEven/S/E/Y exit CopyAToB_Odd.bat 的内容为:xcopy E:you
5、rDir BServerNameOdd/S/E/Y exit (注:这里的 E:yourDir 为你在服务器 A 中需要备份的重要资料的文件目录,以下将此目录的数据全部自动定时备份到服务器 B 上。)接下来,再各自给它们分别建立一个.vbs 文件(特别建议放在与.bat 批处理文件相同的目录下,以方便管理,这里是 C:CopyTask),文件名与上面的文件名相同,但后缀名改为.vbs。其中:CopyAToB_Even.vbs 的内容为:CreateObject(WScript.Shell).Run cmd/c C:CopyTaskCopyAToB_Even.bat,0 CopyAToB_Odd
6、.vbs 的内容为:CreateObject(WScript.Shell).Run cmd/c C:CopyTaskCopyAToB_Odd.bat,0 再下来,就是建立定时任务了。在任务计划中双击“添加任务计划”,一步一步地操作,设置你要运行的程序时,通过浏览方式指向上面的 C:CopyTaskCopyAToB_Even.vbs,然后设置好时间,比如每天早上凌晨四时(4:00)开始备份,为了实现上述隔天备份到不同目录的目的,特别将备份周期改为每两天,开始日期分别为当前日之前的单日和双日。比如:CopyAToB_Even.vbs 为 9 月 9 日,而CopyAToB_Odd.vbs 为 9
7、月 10 日。具体设置根据你的需要而定,不详述。OK。做完之后,你需要测试一下,测试时,你可以将时间调整为当前时间的一分钟之后测试,如果一切正常,再调整为你需要的备份时间。之后退出,大功告成!本方案优点 (1)自动执行,且执行时无烦人的弹出式黑窗口。(2)在某方案基础上进行变通,可以进行多服务器、多任务备份工作。有空再讲一下为何要这么做?还有没有其他方法?以及时间同步的问题,希望对你有用!时间太晚了,明天还要上班,就不多讲了 本文来自CSDN博客,转载请标明出处:http:/ *.NET 的 web 项目并带 sqlserver 数据库如何打包安装 转载 引用位置:.NET 的 web 项目并
8、带 sqlserver 数据库如何打包安装 首先,右键单击项目的解决方案,添加一个 web 安装项目,如下图所示:建好项目后在该安装项目的文件系统中加入 Web 应用程序的输出文件(我这里只选择的是主输出,如果您的项目中还有其它要输出的都可以选上):OK,就这么简单,项目的文件已经发布打包完成了,现在我们将 sqlserver 数据库文件也打包进去。先设计下用户录入 SQL 数据库登陆信息的界面:依次单击您建立的 web 安装项目、视图、用户界面,打开用户界面窗口:然后在启动项里添加“对话框”,在弹出窗口中选择“文本框 A:文章来源(WEB 开发技术知识库):http:/- 将文本框(A)移动
9、到安装流程中合适的位置,设置一下属性,注:这里的 EditProperty 的值是指传递用户输入数据的关键字,我在这里分别设置了数据库名称、数据库服务器地址、用户名、密码四个参数,如下所示:文章来源(WEB 开发技术知识库):http:/- OK,接下来我们需要再建立个安装数据库的项目,该项目来获取安装参数并安装数据库文件:我 在 这 里 创 建 的 项 目 名 字 是DBInstall,然 后 创 建 一 个 继 承 于System.Configuration.Install.Installer 的类,如图,添加对 System.Configuration.Install.的引用:文章来源(
10、WEB 开发技术知识库):http:/- 然后,将此类库与安装项目关联起来,步骤同上,即将 DBInstall 项目添加到主输出:文章来源(WEB 开发技术知识库):http:/- 接下来在项目自定义操作的安装项上点右键添加自定义操作,选择刚刚新增主输出来自DBInstall(活动)的文件夹:文章来源(WEB 开发技术知识库):http:/- 这一步很关键:右键单击安装下的“主输出来自 dbinstall(活动)”,选择属性,设置它的CustomActionData属 性 值:/dbname=EDITA1/server=EDITA2/user=EDITA3/pwd=EDITA4/targetd
11、ir=TARGETDIR EDITA1、EDITA2、EDITA3、EDITA4 为刚才设置的文本框(A)里的 4 个参数名称,这里为接收用户输入传递给安装程序的自定义数据,第5个参数TARGETDIR返回的是Web应用程序安装路径。dbname、server、user、pwd、targetdir 我们可以在程序里调用它。OK,现在我们开始写安装 Sql 数据库的代码,在继承于 System.Configuration.Install.Installer的 InstallDb 类中重载 Install 方法,在该方法内编写安装过程中需要执行的代码。我已经将安装类的代码添加在本文章附件里,请参考
12、。这里需要说明的是,DBInstall 项目添加引用 System.Configuration.Install。在该类中,实现了在安装过程新建库、执行 sql 脚本创建 sql 对象、修改 web.config 文件等操作,具体参见代码。文章来源(WEB 开发技术知识库):http:/- using System;using System.Collections.Generic;using System.ComponentModel;using System.Configuration.Install;using System.IO;using System.Data.SqlClient;us
13、ing System.Reflection;namespace DBInstall RunInstaller(true)public partial class InstallerDb:Installer private string server=,user=,pwd=,dbname=;/重载 Installer 里的 Install 方法,即这里是自定义安装程序的入口 /public override void Install(System.Collections.IDictionary stateSaver)dbname=this.Context.Parametersdbname;/db
14、name 为数据库名称 server=this.Context.Parametersserver;/server 为 服务器名称 user=this.Context.Parametersuser;/user 为 数据库登录名称 pwd=this.Context.Parameterspwd;/pwd 为 数据库 登录密码 /以上四个参数由启动里的文本框 A 所决定的,详情参考 - 里的教程 AddDBTable(dbname);/添加表,视图,存储过程 WriteWebConfig();/更新 webconfig 连接字符串 /取得 sql 文件内容 /private string GetSql
15、(string strName)try /Get the current assembly.Assembly Asm=Assembly.GetExecutingAssembly();/Resources are named using a fully qualified name Stream strm =Asm.GetManifestResourceStream(Asm.GetName().Name+.+strName);/Read the contents of the embedded file.StreamReader reader=new StreamReader(strm);/,S
16、ystem.Text.Encoding.Unicode);return reader.ReadToEnd();catch return null;/执行 sql 语句 /private void ExecuteSql(string DatabaseName,string Sql)string connString=string.Format(server=0;user id=1;password=2;database=3,server,user,pwd,DatabaseName);SqlConnection sqlConnection1=new SqlConnection(connString
17、);SqlCommand Command =new SqlCommand(Sql,sqlConnection1);Command.Connection.Open();Command.Connection.ChangeDatabase(DatabaseName);try Command.ExecuteNonQuery();finally Command.Connection.Close();protected void AddDBTable(string strDBName)try /Create the database.ExecuteSql(master,CREATE DATABASE +s
18、trDBName);/Create the tables.ExecuteSql(strDBName,GetSql(sql.txt);catch /*/数据库安装完成后更新 web.config 文件 /private bool WriteWebConfig()System.IO.FileInfo FileInfo=new System.IO.FileInfo(this.Context.Parameterstargetdir+/web.config);if(!FileInfo.Exists)throw new InstallException(找不到网站配置文件:+this.Context.Pa
19、rameterstargetdir+/web.config);System.Xml.XmlDocument xmlDocument=new System.Xml.XmlDocument();xmlDocument.Load(FileInfo.FullName);bool FoundIt=false;/设置变量 初始值 false 表示 更新不成功 foreach(System.Xml.XmlNode Node in xmlDocumentconfigurationconnectionStrings)if(Node.Name=add)if(Node.Attributes.GetNamedItem
20、(name).Value=constr)Node.Attributes.GetNamedItem(connectionString).Value=string.Format(server=0;database=1;uid=2;password=3;Max Pool Size=512,server,dbname,user,pwd);FoundIt=true;if(!FoundIt)throw new InstallException(配置文件 web.config 有错误。);xmlDocument.Save(FileInfo.FullName);return FoundIt;以上代码,是一个
21、InstallerDb.cs 文件,这是用 C#写的.用 VB 得是.vb 文件,也即创建一个类.*转载 C#项目打包,并自动安装 SQL 数据库 收藏 应一位网友的需求,并修正了 MVP 李洪根.NET 平台下 WEB 应用程序的部署(安装数据库和自动配置)中的 osql 用法错误,已测试通过。一).创建部署项目 1.在“文件”菜单上指向“添加项目”,然后选择“新建项目”。2.在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中键入 setup1。3.单击“确定”关闭对话框。4.项目被添加到解决方案资源管理器中,并且文件系
22、统编辑器打开。5.在“属性”窗口中,选择 ProductName 属性,并键入 信息管理系统。二).将 主程序 项目的输出添加到部署项目中 1.在“文件系统编辑器”中,选择“应用程序文件夹”。在“操作”菜单上,指向“添加”,然后选择“项目输出”。2.在“添加项目输出组”对话框中,选择“项目”下拉列表中的“你的程序”。3.单击“确定”关闭对话框。4.从列表中选择“主输出”和“内容文件”组,然后单击“确定”。三).创建安装程序类 1.在“文件”菜单上指向“新建”,然后选择“项目”。2.在“新建项目”对话框中,选择“项目类型”窗格中的“Visual Basic 项目”,然后选择“模板”窗格中的“类库
23、”。在“名称”框中键入 installDB。3.单击“打开”关闭对话框。4.从“项目”菜单中选择“添加新项”。5.在“添加新项”对话框中选择“安装程序类”。在“名称”框中键入 installDB。6.单击“确定”关闭对话框。7.详细代码附后。四).创建自定义安装对话框 1.在解决方案资源管理器中选择“setup1”项目。在“视图”菜单上指向“编辑器”,然后选择“用户界面”。2.在用户界面编辑器中,选择“安装”下的“启动”节点。在“操作”菜单上,选择“添加对话框”。3.在“添加对话框”对话框中,选择“许可协议”对话框,然后单击“确定”关闭对话框。4.在“添加对话框”对话框中,选择“文本框(A)”
24、对话框,然后单击“确定”关闭对话框。5.在“操作”菜单上,选择“上移”。重复此步骤,直到“文本框(A)”对话框位于“安装文件夹”节点之上。6.在“属性”窗口中,选择 BannerText 属性并键入:安装数据库.7.选择 BodyText 属性并键入:安装程序将在目标机器上安装数据库 8.选择 Edit1Label 属性并键入:数据库名称:9.选择 Edit1Property 属性并键入 CUSTOMTEXTA1 10.选择 Edit1Value 属性并键入:dbservers 11.选择 Edit2Label 属性并键入:服务器名:12.选择 Edit2Property 属性并键入 CUST
25、OMTEXTA2 13.选择 Edit2Value 属性并键入:(local)14.选择 Edit3Label 属性并键入:用户名:15.选择 Edit3Value 属性并键入:sa 16.选择 Edit3Property 属性并键入 CUSTOMTEXTA3 17.选择 Edit4Label 属性并键入:密码:18.选择 Edit4Property 属性并键入 CUSTOMTEXTA4 19.选择 Edit2Visible、Edit3Visible 和 Edit4Visible 属性,并将它们设置为 true 五).创建自定义操作 1.在解决方案资源管理器中选择“setup1”项目。在“视图
26、”菜单上指向“编辑器”,然后选择“自定义操作”。2.在自定义操作编辑器中选择“安装”节点。在“操作”菜单上,选择“添加自定义操作”。3.在“选择项目中的项”对话框中,双击“应用程序文件夹”。4.选择“主输出来自 installDB(活动)”项,然后单击“确定”关闭对话框。5.在“属性”窗口中,选择 CustomActionData 属性并键入“/dbname=CUSTOMTEXTA1/server=CUSTOMTEXTA2/user=CUSTOMTEXTA3/pwd=CUSTOMTEXTA4/targetdir=TARGETDIR”。附:/targetdir=TARGETDIR是安装后的目标路
27、径,为了在 installDB 类中获得安装后的路径,我们设置此参数。六).添加文件 1.将 SQL Server 备份成文件 DB.dat 添加到“setup1”项目(在企业管理器中右击数据库-所有工作-备份数据库,备份成一个文件,取名为 DB.dat)2.将安装文件 LisenceFile.rtf 添加到“setup1”项目 3.在用户界面编辑器中,选择许可协议,设置 LisenceFile 属性为 LisenceFile.rtf 文件 4.一般会自动将依赖项添加到“检测到的依赖项”,如果没有,那么我们要手动将其加入步骤 5)Crystal_Managed2003.msm(如果有水晶报表)
28、dotnetfxredist_x86.msm(.net 一定是必须的).(如果有引用其他的 dll)5.如果使用了水晶报表,手动加入要包含的文件:项目-添加-合并模块(添加你的程序文件)(包括 dotNetFramework 和 MDAC27),位于:C:Program FilesCommon FilesMerge Modules 下,*为必要的 具体功能如下:(托管组件 MSM 处理所有托管组件的分发,其中包括 Windows 窗体查看器、Web 窗体查看器和所有 Crystal Decisions 命名空间)*Crystal_Managed2003.msm Crystal_Managed2
29、003_chs.msm (对于使报表运行所需的所有其他文件,由数据库访问 MSM 处理其分发。其中包括数据库、导出和图表驱动程序。)*Crystal_Database_access2003.msm Crystal_Database_access2003_chs.msm (KeyCode MSM 处理 Crystal Decisions 密钥号码的安装,注意是添加合并模块,否则没有“MergeMouduleProperties”属性)*Crystal_regwiz2003.msm (如 果 报 表 文 件 使 用 了 ADO.NET 的 dataset 数 据 集 对 象,那 么 VC_User
30、_CRT71_RTL_X86_-.msm 和 VC_User_STL71_RTL_X86_-.msm 模块也必须包含在安装工程中。而且这两个模块的文件安装属性的Module Retargetable Folder项必须修改成为系统目录)VC_User_CRT71_RTL_X86_-.msm VC_User_STL71_RTL_X86_-.msm (很多人经常出现查询错误,不妨加上这个)5.打开解决方案-右键点击 Crystal_regwiz2003.msm 的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个
31、是你生成 Crystal Report 是用到的注册号的密码!)七).打包時加入卸载功能:方法一:1.在打包項目中添加文件 msiexec.exe(一般可在 c:windowssystem32下找到)2.在文件系統視圖中選擇應用程序文件夾,在 msiexec.exe 上按右鍵,選擇創建快捷方式,重命名快捷方式為卸载.3.更改此快捷方式的Arguments 为/x 產品id,產品id的值為打包項目的ProductCode屬性值.方法二:(推荐)1.先生成安装包,记下 ProductCode(选择解决方案资源管理器根目录如 setup1,再查看属性标签,不是右键中的属性),下面要用到 2.用 VS
32、.net 建立一个新的控制台程序 uninst.exe 文件 power by:landlordh for 2000,xp,2003 Module uninstall Sub Main()Dim myProcess As Process=New Process If System.Environment.OSVersion.ToString.IndexOf(NT 5)Then myProcess.Start(msiexec,/X2B65D4A9-C146-4808-AB4B-321FB0779559)改为自己的ProductCode End If myProcess.Close()End Su
33、b End Module 3.将控制台程序 BIN 目录的 exe 文件加入到打包程序文件中,在程序组创建 uninst.exe 的快捷方式 附:installdb.vb 类,要添加引用 system.configuration.install.dll:Imports System.ComponentModel Imports System.Configuration.Install Public Class Installer1 Inherits System.Configuration.Install.Installer#Region 组件设计器生成的代码 Public Sub New()
34、MyBase.New()该调用是组件设计器所必需的。InitializeComponent()在 InitializeComponent()调用之后添加任何初始化 End Sub Installer 重写 dispose 以清理组件列表。Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)If disposing Then If Not(components Is Nothing)Then components.Dispose()End If End If MyBase.Dispose(disposing)E
35、nd Sub 组件设计器所必需的 Private components As System.ComponentModel.IContainer 注意:以下过程是组件设计器所必需的 可以使用组件设计器来修改此过程。不要使用代码编辑器来修改它。Private Sub InitializeComponent()components=New System.ComponentModel.Container End Sub#End Region Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)M
36、yBase.Install(stateSaver)If Not InstallDB()Then 失败,反安装 Me.Uninstall(stateSaver)Exit Sub End If DeleteFile(String.Format(0DB.dat,Me.Context.Parameters.Item(targetdir)End Sub Public Overrides Sub Uninstall(ByVal stateSaver As System.Collections.IDictionary)执行反安装 MyBase.Uninstall(stateSaver)DeleteFile(
37、String.Format(0DB.dat,Me.Context.Parameters.Item(targetdir)End Sub Private Sub DeleteFile(ByVal paths As String)删除指定的文件 Try Dim delFile As New System.IO.FileInfo(paths)If delFile.Exists Then delFile.Delete()End If Catch ex As Exception End Try End Sub Private Sub CreateSql(ByVal paths As String)Dim
38、File As System.IO.StreamWriter Dim db As String=String.Format(0,Me.Context.Parameters.Item(dbname)Dim path As String=String.Format(0,Me.Context.Parameters.Item(targetdir)Try Dim s As New System.Text.StringBuilder s.Append(use master&vbCrLf)s.Append(&vbCrLf)s.Append(if not exists(select*from sysdatab
39、ases where name=&db&)&vbCrLf)s.Append(BEGIN&vbCrLf)s.Append(create database&db&vbCrLf)s.Append(END&vbCrLf)s.Append(&vbCrLf)s.Append(if exists(select*from sysdevices where name=DBdisk)&vbCrLf)s.Append(BEGIN&vbCrLf)s.Append(EXEC sp_dropdevice DBdisk&vbCrLf)s.Append(END&vbCrLf)s.Append(Else&vbCrLf)s.Ap
40、pend(BEGIN&vbCrLf)s.Append(EXEC sp_addumpdevice disk,DBdisk,&path&DB.dat&vbCrLf)s.Append(END&vbCrLf)s.Append(&vbCrLf)s.Append(restore database&db&vbCrLf)s.Append(from disk=&path&DB.dat&vbCrLf)s.Append(with replace)File=New System.IO.StreamWriter(paths)File.Write(s.ToString)Catch ex As Exception Fina
41、lly File.Close()End Try End Sub Private Function InstallDB()As Boolean 安装数据库,调用自动批处理。Try 创建临时脚本 CreateSql(String.Format(0Mydb2000tp.sql,Me.Context.Parameters.Item(targetdir)调用 osql 执行脚本 Dim sqlProcess As New System.Diagnostics.Process sqlProcess.StartInfo.FileName=osql.exe sqlProcess.StartInfo.Argum
42、ents=String.Format(-U 0-P 1-S 2-i 3Mydb2000tp.sql,Me.Context.Parameters.Item(user),Me.Context.Parameters.Item(pwd),Me.Context.Parameters.Item(server),Me.Context.Parameters.Item(targetdir)sqlProcess.StartInfo.WindowStyle=ProcessWindowStyle.Hidden sqlProcess.Start()sqlProcess.WaitForExit()等待执行 sqlProc
43、ess.Close()删除脚本文件 DeleteFile(String.Format(0Mydb2000tp.sql,Me.Context.Parameters.Item(targetdir)Return True Catch ex As Exception Return False End Try End Function End Class posted 2008-02-05 02:04 Ellan 阅读(24)|评论(0)|编辑 ASP.NET AJAX 1.0 的安装 1.安装 ASP.NET 2.0 AJAX Extensions 1.0(点击下载 ASPAJAXExtSetup.m
44、si,1.36M),这时,工具栏会出现“AJAX Extensions”。2.安装 ASP.NET 2.0 AJAX Futures January CTP(点击下载 ASPAJAXCTP.msi,1.70M),这个 CTP 是可以不装的。这一部分就是被 ASP.NET AJAX 暂时“抛弃”的原有 CTP 版本中“非核心”的部分,也叫做“Value-add”包,其中包括服务器端的扩展器控件(Extender Control)、Web 部件,客户端的各种控件、拖放功能实现、ASP.NET AJAX XML 脚本等。所谓“抛弃”,实际上只是意味着微软公司暂时不会对这些内容进行官方的支持,而选择使
45、用“社区支持”的方法。这样,微软公司将不会为这部分内容提供详细的开发文档,开发者只能在社区中互相讨论以找到问题的解决方案。若要安装这部分内容,则必须首先安装“核心”部分的 ASP.NET 2.0 AJAX Extensions。3.安装 ASP.NET AJAX Control Toolkit(点击下载 AjaxControlToolkit.zip,3.36M)。1)在安装之前,需要对压缩文件 AjaxControlToolkit.zip 进行解压缩,建议复制文件到Visual Studio project 文件夹中(我的文档Visual Studio 2005ProjectsAjaxCont
46、rolToolkit),以便于管理。2)在文件夹中找到解决方案 AjaxControlToolkit.sln 并打开它,它包含四个项目,编译全部解决方案,然后运行我的文档Visual Studio 2005ProjectsAjaxControlToolkitTemplateVSIbin下的AjaxControlExtender.vsi文件,在Visual Studio 2005 中安装 AJAX Control Toolkit 扩展项目类型。3)用 Visual Studio 2005 随便打开一个 Web 项目,在工具栏上增加一个面板并命名为“AJAX Control Toolkit”。4)
47、在新建的面板上增加项,在“选择工具箱项”窗口中,单击“浏览”按钮,并选择我的 文 档 Visual Studio 2005ProjectsAjaxControlToolkitSampleWebSitebin下 的AjaxControlToolkit.dll 文件,然后确定即可安装完毕。Tips 建议安装 Nikhil Kothari 的 Web Development Helper,这个 IE 插件工具对开发者用来调试 AJAX/JavaScript 页面和 ASP.NET 是非常有用的。Web Development Helper 包含了跟踪功能,脚本调试和一个消息窗口。这个工具可以从 Ni
48、khils blog 中找到(点击下载)。然后在IE 中,通过“查看-浏览器栏-Web Development Helper”来打开 Web Development Helper tool,一旦 Web Development Helper 开始运行并且你已经激活 HTTP 的日志,你会看到在AJAX 中由客户端 JavaScript 发送的各种异步请求。posted 2008-02-05 00:21 Ellan 阅读(35)|评论(0)|编辑 About AJAX AJAX 全称为“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),是
49、指一种创建交互式网页应用的网页开发技术。AJAX 的定义 基于 web 标准(standards-based presentation)XHTML+CSS 的表示;使用 DOM(Document Object Model)进行动态显示及交互;使用 XML 和 XSLT 进行数据交换及相关操作;使用 XMLHttpRequest 进行异步数据查询、检索;使用 JavaScript 将所有的东西绑定在一起。英文参见 AJAX 的提出者 Jesse James Garrett 的原文。类似于 DHTML 或 LAMP,AJAX 不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于
50、 AJAX 的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。AJAX 的应用使用支持以上技术的 web 浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror 及 Safari。但是 Opera 不支持 XSL 格式对象,也不支持 XSLT。AJAX 与传统的 WEB 应用比较 传统的 web 应用允许用户填写表单(form),当提交表单时就向 web 服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前后两个页面