raindust

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
traceback:http://www.cnblogs.com/f4f16/archive/2006/09/18/507082.html

Visual Studio
 
(1)C#:
using System;
using System.Collections.Generic;
using System.Text;

namespace ClassLibrary1
{
    
public class Class1
    {
        
void fun()
        {
            
//一维数组的定义
            int[] a1;
            a1 
= new int[10];
            
//二维且每行元素个数相同的数组
            int[,] a2 = new int[23];
            
//二维且每行元素个数不相同的数组
            int[][] a3 = new int[2][];
            a3[
0= new int[5];
            a3[
1= new int[2];
        }
    }
}


(2)
改.aspx文件时记住改.cs文件的类名和命名空间的名字,此时相应的.aspx文件中<%@ Page~~%>中的Inherits的值会相应改变,同时要改变此文件中Codebehind的值。<%@ Page Codebehind="Country.aspx.cs" %>是告诉asp.net引擎这个页面有个某某后置代码需要动态编译。
改Global.asax 文件的命名空间名<%@ Page language="c#" Codebehind="MoveInConfirm.aspx.cs" AutoEventWireup="false" Inherits="Olympic.MaterialManage.Category1.MoveInConfirm" %><%@ Page language="c#" Codebehind="MoveInConfirm.aspx.cs" AutoEventWireup="false" Inherits="Olympic.MaterialManage.Category1.MoveInConfirm" %><%@ Page language="c#" Codebehind="MoveInConfirm.aspx.cs" AutoEventWireup="false" Inherits="Olympic.MaterialManage.Category1.MoveInConfirm" %><%@ Page language="c#" Codebehind="MoveInConfirm.aspx.cs" AutoEventWireup="false" Inherits="Olympic.MaterialManage.Category1.MoveInConfirm" %><%@ Page language="c#" Codebehind="MoveInConfirm.aspx.cs" AutoEventWireup="false" Inherits="Olympic.MaterialManage.Category1.MoveInConfirm" %>。
改web 应用程序所在的目录名时,要右键Project名-Properties:General中的Assembly Name,Default Namespace,Web Settings中的Path值,其中Default Namespace对于VB.NET来说是根名字空间,对于C#是default namespace即如果没有命名空间就用默认的,有则就用已有的。
删掉.sln文件,打开.webinfo文件,将URLPath值改成.csproj文件的本地URL路径,打开.csproj文件-右键Solution选Rebuild生成.sln文件。
如 有“CS1595: 已在多处定义~~”的错误,一般是因重命名了虚拟目录的名称和文件夹而造成的,则有2种方法:1.改掉所有命名空间名称2.删掉“C:\WINDOWS\ Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files”目录下的此工程对应的文件(此时应进入任务管理器结束aspnet_wp.exe进程,才可以删掉此文件)再Rebuild再执行,如果还有 错误就再删掉C:\Inetpub\wwwroot\OBFM\下的bin文件夹再Rebuild再执行,如果还有错误就再删掉c:\documents and settings\(username)\vswebcache

(3)aa/bb.xml路径是相对于上个页面的网站Virtual路径。
/aa/bb.xml是相对于webserver根的virtual path。
C:\Inetpub\wwwroot\aa\bb.xml是物理路径。

(4)服务器根目录要用“~/”

(5)将某个目录设成Virtual Directory时,其下面应该有.csproj等文件,不能在此目录下的子目录里。

(6) 将某个目录设成Virtual Directory时,如用VS2003而又装了Framework2.0时,在Interent Information Services管理工具里右键其选properties-将其中的ASP.NET项下的Vertion值选对(VS2003选1.1.4322)。

(7)任何不在工程内的文件如图片文件,都可以通过拖动其到VS2003中来实现加入到工程里。

(8)对于VS2003中的.aspx文件中的表格等,不要在VS2003中拖动改变其大小,否则控制其大小的Width等属性会以style="width:30px"这种形式,如此时再在Dreamweaver中设置其值则造成重复,则页面不是你想要的。
当在VS2003中保存某个页面时,最好在Dreamweaver中使其页面处于激活状态,可避免使其在Dreamweaver中变成修改状态。

(9)将剪贴板上的字粘贴到.aspx文件里时,最好右键用Paste as HTML粘贴,这样得到的字是纯的前后不带样式标签的。

(10)在VS2003中的Solution Explorer视窗中点击“Show All Files”按钮会把后面的文件显示出来,再点一下又不显示。
(11)if(!IsPostBack)的IsPostBack的意义是“是否是第二次请求”。
(12)<%=Request.QueryString["~"] %>
Response.Write(Request.QueryString.Get("~"));
(13)在一个Project里使用另一个Project里的类时,要在References里通过Add Reference对话框里的Project栏里加此Project的bin\Debug里的.dll文件。

(14)Pet Shop4.0的安装只要象装软件一样装完就不用再按照它的Read me文件里说的手动安装了。选择完全安装时,会帮你自动建出4个数据库。
(15)C#编码规范:私有成员前加m,类和函数的注释用///,函数内部注释用//。
(16)如在写代码时候无智能提示则是因为在References里没有引入此组件即.dll的引用。

(17)当website项目没有.sln文件时候,可在VS2005里选file-open-web site之后选此项目的总文件夹就可以打开了。之后可以在file下拉菜单中保存一个.sln文件。

(18)启动用户实例的进程时出错

问题:
使用ASP.NET 2.0 + SQL2005 + aspnetdb(MemberShip等功能)时出现这个问题:
“由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。”
英 文是:“Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.”

问题原因:
这是微软的bug,并且微软已经承认,详情如下:http://support.microsoft.com/?id=896613
出现此错误的条件是:你用过远程桌面连接,并且安装了SQL2005+VS2005,就有很大可能触发这个问题,微软说会在将来的XP SP3里面解决掉这个问题。

解决:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=128707&SiteID=1
如果你看不懂英文,那么我告诉你我的解决办法:
删 除C:\Documents and Settings\[USERNAME]\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS目录即可,[USERNAME]是Windows用户名,比如说Administrator

(19)从客户端调用Web Method时发生[Method Error 12031]或[Method Error 500]异常:
若要从客户端调用某个服务器端Web Service中的Web Method,则该Web Service必须拥有Microsoft.Web.Script.Services.ScriptServiceAttribute属性:

//如果你装的是ASP.NET AJAX(Atlas)Beta 1则加下面的属性
[Microsoft.Web.Script.Services.ScriptService()]
//如果你装的是ASP.NET AJAX(Atlas)v1.0则加下面的属性
[System.Web.Script.Services.ScriptService]
public class MyService : System.Web.Services.WebService
{
 
// 
}

若要从客户端调用某个定义与页面中的Page Method,则该Page Method必须用Microsoft.Web.Script.Services.ScriptMethodAttribute属性修饰(当然, System.Web.Services.WebMethod也是必不可少的),且必须为静态(static)方法。目前版本的一个Bug还导致我们必须 在ASPX文件中定义这个Web Method,在CS文件中定义是没有作用的(真是无奈):

//如果你装的是ASP.NET AJAX(Atlas)Beta 1则代码只能写成下面的混合模式
<script runat="server">
    [System.Web.Services.WebMethod]
    
//如果你装的是ASP.NET AJAX(Atlas)Beta 1则加下面的属性
    [Microsoft.Web.Script.Services.ScriptMethod]
    
//如果你装的是ASP.NET AJAX(Atlas)v1.0则加下面的属性
    [System.Web.Script.Services.ScriptMethod]
    
public static string GetHtml(string contextKey)
    {
      
// 
    }
</script>

//如果你装的是ASP.NET AJAX(Atlas)v1.0则代码可以分离着写
[WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static CascadingDropDownNameValue[] GetArea(string knownCategoryValues, string category)
{
  
//
}

(20)C#中out与ref的用法与区别
1、out必须在函数体内初始化,在外面初始化没意义。也就是说,out型的参数在函数体内不能得到外面传进来的初始值。
2、ref必段在函数体外初始化。
3、两都在函数体的任何修改都将影响到外面。
例:

using System;
namespace ConsoleApplication1
{
 
class C
 {
  
public static void reffun(ref string str)
  {
   str 
+= " fun";
  }
  
public static void outfun(out string str)
  {
   str 
= "test";     //必须在函数体内初始
   str += " fun";
  }
 }
 
class Class1
 {
  [STAThread]
  
static void Main(string[] args)
  {
   
string test1 = "test";
   
string test2;             //没有初始
   C.reffun( ref test1 );    //正确
   C.reffun( ref test2 );    //错误,没有赋值使用了test2
   C.outfun( out test1 );    //正确,但值test传进去
   C.outfun( out test2 );    //正确
   Console.Read();
  }
 }
}

在传值和传址情况下,C#强制要求参数在传入之前由用户明确初始化,否则编译器报错!但我们如果有一个并不依赖于参数初值的函数,我们只是需要函数 返回时得到它的值是该怎么办呢?往往在我们的函数返回值不至一个时我们特别需要这种技巧。答案是用out修饰的输出参数。但需要记住输出参数与通常的函数 返回值有一定的区别:函数返回值往往存在堆栈里,在返回时弹出;而输出参数需要用户预先制定存储位置,也就是用户需要提前声明变量--当然也可以初始化。
在函数体内所有输出参数必须被赋值,否则编译器报错!out修饰符同样应该应用在函数声明和调用两个地方,除了充当返回值这一特殊的功能外,out修饰符ref修饰符有很相似的地方:传址。

(21)数组参数的例子:

using System;
class Test
{
    
static int Sum(params int[] args)
    {
        
int s = 0;
        
foreach (int n in args)
        {
            s 
+= n;
        }
        
return s;
    }
    
static void Main()
    {
        
int[] var = new int[] { 12345 };
        Console.WriteLine(
"The Sum:" + Sum(var));
        Console.WriteLine(
"The Sum:" + Sum(1020304050));
    }
}


(22)GradView等控件的OnObjectCreated事件在第一次调用odsOrg3_ObjectCreated(object sender, ObjectDataSourceEventArgs e)函数时是创建表头。
(23)要想取得控件里面的控件的ID号如GradView里的模板列的,应该这样取:GradView$TemplateField。
(24)asp的控件的html端的ID如在Javascript里用其ID,可以这样得到<%=其服务器端ID.ClientID %>

(25).aspx中:<iframe id="content" runat="server" frameborder="0" style="width: 100%; height: 100%;"></iframe>
.cs中可以这样使用:((System.Web.UI.HtmlControls.HtmlGenericControl)content).Attributes["src"] = "aaa";
(26)在C#中switch的比对参数也可以是字符串:
        switch (Request.QueryString["tem"])
        {
            case "ab":
                addr = "aa.aspx";
                break;
        }
(27)这个<style type="text/css"></style>要放在<head runat="server"></head>中否则看不了设计视图。
(28)Javascript里也可以用else if(),如
if(1)
{}
else if(0)
{}

(29)
1.如果浏览页面时提示下面的错误:

Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Could not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Source Error: 


Line 51:         
<compilation debug="true">
Line 52:             
<assemblies>
Line 53:                 
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
Line 54:                 
<add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 55:                 
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
 

Source File: E:\M\PerforceRoot\Olympic\OBFM\Web\web.config    Line: 53 

2.或者拖crystalreportviewer控件到页面提示:memory 写保护时,
3.或者一些系统提供的类找不到,
以上的异常的原因可能是没装ASP.NET 2.0 AJAX Extensions 1.0

(30)

using System;
using System.Collections.Generic;
using System.Text;

namespace OBFM.BusinessRules
{
    [System.ComponentModel.DataObject]
    
public partial class BumpInBO
    {
        [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, 
false)]
        
public DataSetBumpIn.BumpInDocumentDataTable GetDocByDocId(string docId)
        {
            
return BumpInDocAdapter.GetDocByDocId(docId);
        }
    }
}

上面的类和方法加的属性可以使在页面中配置ObjectDataSource数据源时既选Configure Data Source-Choose a Business Object里看到此类,在Define Data Methods中可以看到此方法。
(31)强类型的Dataset指系统建立的带外键关系等结构,很象数据库中的表结构的Dataset,而我们自己new的Dataset只加了colume等而没有结构关系的是非强类型的。
(32)如果Dataset视图中有多个表,那么此Dataset结构是有的只是是没有数据的空结构,通过下面的方法可以使一个Dataset中的某些表充满数据:

        DataSetSystem dsRole = new DataSetSystem();

        OBFM.DataEntities.DataSetSystemTableAdapters.PathTableAdapter pathTableAdapter 
= new OBFM.DataEntities.DataSetSystemTableAdapters.PathTableAdapter();
        pathTableAdapter.Fill(dsRole.Path);

        OBFM.DataEntities.DataSetSystemTableAdapters.RolePathTableAdapter rolePathTableAdapter 
= new OBFM.DataEntities.DataSetSystemTableAdapters.RolePathTableAdapter();
        rolePathTableAdapter.FillByRoleId(dsRole.RolePath, Int32.Parse(gvRole.SelectedValue.ToString()));

上面的Dataset“dsRole”中就有了两个充满值的表。

(33)如果想给Dataset.xsd中的某个适配器类增加方法,可以右键.xsd选择View Code之后下面出现.cs文件,可以在此文件里扩展~TableAdapter类的方法。

(34) 如果用<asp:ObjectDataSource/>作为数据源,查询语句的参数来自于<asp: ObjectDataSource/>监视的<asp:TextBox/>,那么当文本框为空时,虽然 this.TextBoxID.Text的值为"",但SQL语句要用@~ is null对应。
如果用:
DepartmentTableAdapter departmentAdapter = new DepartmentTableAdapter();
Department.DepartmentDataTable aa = departmentAdapter.GetDataByPara("dscpn", this.txtSearchKey.Text);
this.gvOrg.DataSource = aa;
做数据源,那么传给SQL语句的值为"",所以要在SQL语句中用@~ = ''对应。

(35)在.aspx文件的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
前面最好加上<script type="text/javascript"></script>,可使设计时见到的页面和浏览时看到的一样。

(36)http://jsjlcl.bokee.com/viewdiary.13765974.html Cookie的基本知识

(37)作安装程序时可设置的地方:
1.左键点击Setup工程-在属性窗中:
Author:JasonLi
Localization:Chinese(Simplified)
Manufacturer:
ProductName:将显示在安装对话框中
RemovePreviousVersions:True
Title:
2.右键点击Setup工程-View-File System-点击编辑窗中的Web Application Folder-在属性窗中:
VirtualDirectory:
3.右键点击Setup工程-View-User Interface-点击编辑窗中的Welcome-在属性窗中将WelcomeText改为“制作:~-~-安装程序将引导您完成在您的计算机上安装<[ProductName]>所需的步骤。”
如果是用WebSetup做个只有合并模块的安装程序则可以删掉编辑窗中的“Installation Address”
4.右键Setup工程-Properties-可在Output file name中修改生成后的.msi文件的名称如改为SetupEXT.msi
可点击Prerequisites在对话框中选预安装的东西,VS2005会将你选的东西做到你的安装程序里,在安装的时候会预先从你的安装程序里安装这些组件。记住如果改属性时候要改完debug模式后也要把release模式下的属性改成一样的。
5.右键Setup工程或右键File System里的东西都会有Add选项来添加东西。

(38)ASP.NET Error: Failed to access IIS metabase错误的解决办法
错误提示:
 

Server Error in '/PSP' Application.

Failed to access IIS metabase.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.Hosting.HostingEnvironmentException: Failed to access IIS metabase.

The process account used to run ASP.NET must have read access to the IIS metabase (e.g. IIS://servername/W3SVC). For information on modifying metabase permissions, please see http://support.microsoft.com/?kbid=267904.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[HostingEnvironmentException: Failed to access IIS metabase.]
System.Web.Configuration.MetabaseServerConfig.MapPathCaching(String siteID, VirtualPath path) +3500410
System.Web.Configuration.MetabaseServerConfig.System.Web.Configuration.IConfigMapPath.MapPath(String siteID, VirtualPath vpath) +9
System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull) +163
System.Web.CachedPathData.GetConfigPathData(String configPath) +382
System.Web.CachedPathData.GetConfigPathData(String configPath) +243
System.Web.CachedPathData.GetApplicationPathData() +68
System.Web.CachedPathData.GetVirtualPathData(VirtualPath virtualPath, Boolean permitPathsOutsideApp) +3393731
System.Web.Configuration.RuntimeConfig.GetLKGRuntimeConfig(VirtualPath path) +189


Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.210

解决方法:
1.在run里运行cmd命令进入DOS命令行-cd \-cd C:\windows\microsoft.net\framework\v2.0.50727或在Microsoft Visul Studio 2005-Visul Studio Tool里调出Visual Studio 2005 Command Prompt后直接输入命令而不用退到C:\windows\microsoft.net\framework\v2.0.50727这个目录。
2.然后执行命令 aspnet_regiis -ga <账户名>
3.aspnet_regiis -i -enable
4.net stop iisadmin
5.net start w3svc

对了说一下,aspnet_regiis.exe这个程序是在c:\windows\microsoft.net\framework\v2.0.50727目录下的,如果你的不是windows xp sp2,那么请您搜寻该程序,只要执行相同的命令即可。

(39)“VSTS 启动web测试记录器无效”问题的解决
现象:
用VS2005做性能测试时,发现添加新的web测试,启用记录web动作,发现web记录器的按钮都是灰显的,只是web浏览器左面提示要从vs内部打开web记录器。
原因:
在微软的论坛中发现这个可能是个Bug,相关帖子http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=572411&SiteId=1 
解决:
办法1:安装Visual Studio 2005 Service Pack 1 (SP1)即VS80sp1-KB926601-X86-ENU下载地址http://msdn2.microsoft.com/en-us/vstudio/bb265237.aspx 安装完后要重启才能起作用
办法2:使用工具Fiddler录制脚本,可以录制后保存为后缀为.webtest的文件,然后导入项目中。下载地址http://www.fiddlertool.com/fiddler/ 
办法3:可以通过重新注册插件恢复,但这种方法可能不起作用,打开记事本输入内容如下:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT
\CLSID\{8C84B9F5-3D9E-4204-BB0B-F85D46455868}]
@
="Web Test Recorder"
"MenuText"="Web Test Recorder"
"HelpText"="Record Web Tests."

[HKEY_CLASSES_ROOT
\CLSID\{8C84B9F5-3D9E-4204-BB0B-F85D46455868}\Implemented Categories]

[HKEY_CLASSES_ROOT
\CLSID\{8C84B9F5-3D9E-4204-BB0B-F85D46455868}\Implemented Categories\{00021493-0000-0000-C000-000000000046}]

[HKEY_CLASSES_ROOT
\CLSID\{8C84B9F5-3D9E-4204-BB0B-F85D46455868}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}]

[HKEY_CLASSES_ROOT
\CLSID\{8C84B9F5-3D9E-4204-BB0B-F85D46455868}\InprocServer32]
@
="mscoree.dll"
"ThreadingModel"="Both"
"Class"="Microsoft.VisualStudio.TestTools.WebTest.RecorderBarControl"
"Assembly"="Microsoft.VisualStudio.QualityTools.RecorderBar, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

[HKEY_CLASSES_ROOT
\CLSID\{8C84B9F5-3D9E-4204-BB0B-F85D46455868}\InprocServer32\8.0.0.0]
"Class"="Microsoft.VisualStudio.TestTools.WebTest.RecorderBarControl"
"Assembly"="Microsoft.VisualStudio.QualityTools.RecorderBar, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

[HKEY_LOCAL_MACHINE
\SOFTWARE\Microsoft\Internet Explorer\Explorer Bars\{8C84B9F5-3D9E-4204-BB0B-F85D46455868}]
"BarSize"=hex:06,01,00,00,00,00,00,00

然后保存为.reg文件,并双击植入注册表

部分原文内容http://www.cnblogs.com/oscarxie/archive/2007/01/11/618150.html 

(40)
现象:

The specified display mode is currently disabled on this page. Make sure personalization is enabled for the current user.
Parameter name: value 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentException: The specified display mode is currently disabled on this page. Make sure personalization is enabled for the current user.
Parameter name: value

原因:
除Browse模式外其他模式都需要认证才能使用。
WebPart与Membership是有联系的,在DesignMode下需要认证的用户才能访问,如果用户没有登陆,那么会出现上面的提示.而微软说没有认证的用户也可以使用DesignMode,但是一切的改变只会存储在ViewState中。
解决办法:
1.在切换模式时让用户先登陆
2.在登入的地方加上:
FormsAuthentication.RedirectFromLoginPage(userid, false);
并且修改web.config如下:
<authentication mode="Forms"/>
3.如果想让没有被认证的用户也可以使用其他模式,可以通过加上下面的代码实现:
C#

    protected void Page_Load(object sender, EventArgs e)
    {
        
if (!IsPostBack)
        {
            HttpCookie authCookie 
= Request.Cookies.Get(FormsAuthentication.FormsCookieName);
            
if (authCookie == null)
            {
                String MyCookieName 
= "Reminder";
                System.Web.HttpCookie MyCookie 
= Request.Cookies.Get(MyCookieName);
                String UserID;
                
if (MyCookie == null)
                {
                    UserID 
= System.Guid.NewGuid().ToString().Replace("-""");
                    MyCookie 
= new System.Web.HttpCookie(MyCookieName, UserID);
                    MyCookie.Expires 
= DateTime.Now.AddYears(10);
                    Response.Cookies.Add(MyCookie);
                }
                
else
                {
                    UserID 
= MyCookie.Value;
                }

                FormsAuthenticationTicket authTicket 
= new FormsAuthenticationTicket(1, UserID, DateTime.Now, DateTime.Now.AddSeconds(30), false"roles");
                String encryptedTicket 
= FormsAuthentication.Encrypt(authTicket);
                authCookie 
= new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                Response.Cookies.Add(authCookie);
                Response.Redirect(Request.Url.ToString());
            }

            System.DateTime LastDate 
= System.DateTime.Now.AddYears(-1);

            System.Data.SqlClient.SqlConnection cnn 
= new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString);
            System.Data.SqlClient.SqlCommand cmd;

            cmd 
= new System.Data.SqlClient.SqlCommand("DELETE FROM" + " aspnet_PersonalizationPerUser where UserID IN " + "(SELECT UserID from aspnet_Users where " + "[LastActivityDate] < @Date)", cnn);
            cmd.Parameters.Add(
"@Date", SqlDbType.DateTime);
            cmd.Parameters[
"@Date"].Value = LastDate;
            
try
            {
                cnn.Open();
                cmd.ExecuteNonQuery();
            }
            
catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            
finally
            {
                cnn.Close();
            }

            cmd 
= new System.Data.SqlClient.SqlCommand("DELETE FROM" + " aspnet_Users where [LastActivityDate] < @Date", cnn);
            cmd.Parameters.Add(
"@Date", SqlDbType.DateTime);
            cmd.Parameters[
"@Date"].Value = LastDate;
            
try
            {
                cnn.Open();
                cmd.ExecuteNonQuery();
            }
            
catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            
finally
            {
                cnn.Close();
                cmd.Dispose();
                cnn.Dispose();
            }
        }
    }

VB.NET代码:
http://www.codeproject.com/aspnet/anonywebparts.asp 

JavaScript 
(1) 用VS2005调试Javascript时最好用Ctrl+F5(不调试直接运行)不要用F5(调试后运行),因为后者的调试器还是用同一个VS2005 且单步光标指示的位置也不是实际位置,而前者可以选择是否打开新的VS2005调试Javascript且光标停的位置也是正确的。
(2)如果不知道页面中某个控件的下面有什么属性可以用,可以给Javascript代码加断点并调试起来,然后右键此对象选择QuickWatch,之后可以象调试.cs文件里的代码一样使用。
(3)在.cs中加脚本的方法:
当给某个控件加脚本时可以用ddlID.Attributes.Add("onChange", "javascript:ControlItemEnable1();");
当给页面中加脚本时候可以用:
Page.ClientScript.RegisterStartupScript(~)  脚本块出现在Form结束符前,一般用于初始化Form页面,加载时启动。也可以注册Javascript文件。
Page.ClientScript.RegisterClientScriptBlock(~)  脚本块出现在Form开始符之后,一般用于注册与Form初始属性无关的脚本块。
参数key相同的脚本块只有第一个会出现在客户端页面上。在.cs文件中注册前用Page.ClientScript.IsClientScriptBlockRegistered(~)检查一下是否注册过。

if (!Page.ClientScript.IsClientScriptBlockRegistered("myKey"))
{
    
string sct = @"var viewer = document.getElementById('myID');
                              alert();
"
    Page.ClientScript.RegisterStartupScript(
this.GetType(), "myKey", sct, true);
}

http://www.weiw.com/tech/javadict/ref_a-c.htm Javascript各个函数的使用示例

AJAX 
(1)"An extender can't be in a different UpdatePanel than the control it extends." error really needs debugging information"错误。

出这里错误的ajax 控件一般为有target属性的,指定到一个updatePanel里面的控件里。

一个简单的解决方法可以把ajax 控件也放进updatepanel里。但不是对所有的有效的

That is a difference of the new release over previous...  The error however is explicit - any controls that have target properties to point to something that the Update Panel triggers on can only be placed within the update panel....  HOWEVER... there is an override by programtically overriding it using the "ChldrenAsTriggers" property...http://ajax.asp.net/docs/mref/0b850465-67ca-2600-9fdc-2c16d689ab89.aspx

(2) Asp.net Ajax的PopupControl控件的CommitProperty属性是指:目标控件的客户端属性,这个属性是它的值在弹出窗口选择完值后要更新的 属性,比如可以是TextBox客户端属性value(注:不是Text属性),即是<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>生成HTML标签<input type="text" name="textfield" value="aa">后的属性value。
最关键的地方是弹出控件选择值后,值被Ajax PopupControlExtender管理,PopupControl控件然后把值传给客户端TextBox的value属性。

(3)当用户快速点击按钮或其他会导致postback的动作时(即每次request还没有来得及接受到response就又再点击其他按钮)会发生下面的错误:
Invalid postback or callback argument. Event validation is enabled using in configuration or in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.

原因如下:
这是由于在net2.0里增加了一项页面验证:enableEventValidation此属性默认值是TRUE。
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="AEBnx7v.........tS" />
在 我们的页面PostBack的时候,asp.net会根据存储在这个隐藏控件中的Value来校验你点击的BUTTON被委托的事件是不是有效的,当它发 现postback的资料不是原始的控制项发出来的就会产生上述异常,如果网页上有一些特殊的写法会去修改postback资料也会出现这个错误。
通常产生这个错误都是由于在该隐藏控件还没有被render出来之前执行了postback。

解决办法如下:
1.禁用事件校验,不过这个会产生安全问题, 在页面里用<%@ Page EnableEventValidation="false"%>,也可在web.config里<pages enableEventValidation="false"/>
2.呼叫ClientScriptManager.RegisterForEventValidation

(4)AJAX的<asp:UpdatePanel></asp:UpdatePanel>所囊括的部分区域被PostBack时其内的控件都会被恢复成初始状态,所以此前如果
<asp:TextBox ID="aa" runat="server">在Javascript里被设置成了不可编辑当PostBack时就会变成可编辑,所以应该设成
<asp:TextBox ID="aa" runat="server" Enabled="false">

(5)AJAX发送请求后的监视readystate的函数和原来的宿主页面内的函数是两个不同的线程。onreadystatechange的承接函数和监视readystate的函数在同一个线程,有执行的先后顺序的。

oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync);
当varAsync为true时为异步请求,宿主页面发送AJAX请求同时也会为AJAX再开一个线程用于处理此请求、监视readystate的状态等操作,此时宿主页面不会等此线程结束(请求返回)而是继续执行宿主页面的代码。
当varAsync为false时为同步请求,宿主页面发送AJAX请求同时也会为AJAX再开一个线程用于处理此请求、监视readystate的状态等操作,此时宿主页面只有等此线程结束(请求返回)才会执行宿主页面以下的代码。

document.writeln(sText);函数会覆盖掉当前页面内的所有代码,最后页面上内容只是其参数的内容,但不会覆盖掉提取到内存的代码。

document.writeln(sText);输出的内容会自动加入换行。document.write(sText);不加换行。

页面标签如“</head>”如果想作为js的字符串则要分开写如var str1 = "</"; var str2 = "head>";不能写成var str = "</head>";因为此时会当成页面标签了。也可以前加转义字符“\”。

Crystal Report 
(1) 用向导给水晶报表CrystalReportViewer加ReportSource时(Propertyies-DataBindings- ReportSource)如选Custom binding expression则其值的格式为:@"C:\Program Files\Microsoft Visual Studio .NET 2003\Crystal Reports\Samples\Reports\General Business\World Sales Report.rpt",即:一要为绝对路径,二要加双引号,三为了表示此“\”不是表示转义字符的作用前面要加@。

(2)Crystal report 出现

The maximum report processing jobs limit configured by your system administrator has been reached.


Exception Details: System.Runtime.InteropServices.COMException: The maximum report processing jobs limit configured by your system administrator has been reached.

错误的解决办法:
WEB下的水晶报表在正常运行一段时间后会出现以上错误,后来发现,水晶报表会在注册表中注册,并限制了打印数量为75,在“开始-Run”中运行regedit命令后在注册表编辑器里更改以下注册表内容:

HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report Application Server\InProcServer\PrintJobLimit

HKEY_LOCAL_MACHINE\Software\Business Objects\Suite 11.0\Report Application Server\InProcServer\PrintJobLimit

将PrintJobLimit由75改为0,然后重启动计算机后,故障排除。
也可以通过关掉电脑右下脚的“ASP.NET Development Server”再浏览页面的方法解决这个异常。


上面的异常出现在ReportDocument.Load();之后,如果ReportDocument.Load();被写成
        try
        {
            ReportDocument.Load();
        }
        catch ()
        {
        }
则提示下面的错误:

Invalid report file path.
Exception Details: CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: Invalid report file path.


(3)水晶某些数据为汉字时打印出现“方框乱码”的解决办法:乱码一般是字体问题,在报表文件里右键出现乱码的字段-Format Object-Font将Font文本框改成宋体。
(4)在设计Reporting Services报表时如果左面没有数据库字段浏览窗口,可以通过“View-Datasets”掉出来。
(5) “System.Runtime.InteropServices.COMException: Invalid pointer”这个水晶报表的异常的原因可能是在“Database-Database Expert”里对水晶报表建立的连接数据库的连接已经没了。

(6)如果水晶报表预览时显示不出来数据,可以右键Database Fields-Database Expert-Links去掉其中多余的Link。

(7) 如果在Database Expert中想通过Project Data设置报表的数据源,但Dataset.xsd文件又不在Web Site工程里即在Project Data中看不到想用的Dataset.xsd,可以先将报表建立在和那个Dataset.xsd在同一个工程下就可以用了并且可以设计报表了,然后在将 此报表拷贝到相应工程里。

如果在Database Expert中用Dataset作为设计报表时的数据源时,Dataset视图中的表的字段可以自己构造既增加你想要的字段,也可以自己增加外键关系。

如果在Database Expert中多个表中有些表没有link关联,可以在Database Expert中的links里通过用鼠标拖一个表的字段到另一个表的字段上来给它们关联,也可以在.cs中的Dataset中构造所需的多个主表,然后写下面的代码:
ReportDocument docObj = new ReportDocument();
docObj.SetDataSource(dataset);

(8)如果想在Database Expert给水晶报表增加个表但建立的连接没有了即看不到那些表了,则可以在History里找到你以前的连接重新建立,之后加你想加的数据库表到水晶报表文件。

(9)对CrystalReportViewer控件的属性设置如下:
EnableDatabaseLogonPrompt="False" 页面不提示输入登陆数据库信息的对话框,此时可以在程序中设置登陆信息。
HasToggleGroupTreeButton="False" 不出现“显示/隐藏树”的按钮。
DisplayGroupTree="False" 默认左边的树是不显示的,点按钮才显示。
DisplayGroupTree="False" 不显示左边的树状结构。
HasCrystalLogo="False" 不显示水晶报表logo。
PrintMode="ActiveX" 设置点击打印按钮时出现的提示形式。

(10)当水晶报表重复多次显示一条记录时,有两种解决办法:
   A. 先在Database Expert中只导入一张表不要一次把所需的报表都导入,之后设计报表,显示正确后,再一次性的导入其他所需的数据库表,如果在程序中用 ReportDocument给报表赋数据源则只需要用Dataset取出第一个表的字段(不用追溯其他关联表的字段,Crystal Report会根据主表即第一个导入的表并通过自己的link得到其他关联表的所需字段),但要保证Database Expert中link存在。因为如果一次性的导入所有所需表会让Crystal Report不知道哪个是主表。

   B.在Database Expert中一次把所需的报表都导入,并删掉所有的link,在代码中用Dataset在数据库中取出所有导入表中的所需字段,把Dataset给ReportDocument,再用ReportDocument给报表赋数据源。

(11)如果既想用ReportDocument给报表赋数据源,又在Database Expert中一次把所需的报表都导入,可能浏览页面时会报下面的错误:
“Cannot determine the queries necessary to get data for this report. Failed to open a rowset. Error in File C:\DOCUME~1\jqli\LOCALS~1\Temp\NOCMR{30B5E15A-2756-44D8-AEA7-0A4723A9CBA7}.rpt: Failed to open a rowset.”

两种解决办法:
1.是重新设计报表且分两次打开Database Expert第一次只导入一张表作为主表,第二次导入其他所需的表。
2.除了主表外都删掉,再打开Database Expert导入其他表。

(12)如果水晶报表显示不出数据或显示的记录数目比用SQL命令查水晶报表主表得到的记录少,可能原因是因为水晶报表内不只一个表而是有很多关联表但从主表向下追溯时可能传了null造成此条由多表组成的一行记录查不出来则少了此个记录。

(13)如何调节水晶报表.rpt文件的最大宽度:
1.右键报表空白处-Design-Printer Setup,在Paper栏里设置Size
2.点击.rpt文件上某个节,选择Section Expert-Details-勾选Format with Multiple Columns-标签页会多出一个标签为“Layout”-点击“Layout”标签后在里面就可以设置报表的宽度了。


SQL2000 
1) 安装SQL2005 Developer Edition时,客户端和服务器端都在“Server components,tools,Book Online,and samples”-~-Components to Install-Advanced里,服务器的安装程序:Database services,客户端的安装程序:Client Components-Management Tools。
如果装Reporting Services2005(被装在SQL2005上,用于存储做好的报表),记住装Client Components-Business Intelligence Development Studio(用于在VS2005上建立Reporting Services2005的工程,它总是被装到C盘上,所以C盘空间要满足要求)。同时也最好装上Analysis Services和Integration Services,但也可以不装。
一台电脑上不能同时装Reporting Services2000和Reporting Services2005。
如 果要装Reporting Services2000,请先装SQL Server?2000 Service Pack 3a (English) ,如果你跳过SQL Server?2000 Service Pack 3a (English) 的安装,则在安装Reporting Services2000的最后要求你装Service Pack 3a 而且要重启电脑一下才可以安装了,多了一次重启电脑。
如果要想有Reporting Services2000的中文联机丛书,则必须安装“文档和示例-联机丛书-英语”。
如果要卸载Reporting Services2000则可以用安装盘卸载。
如果安装了两个SQL Server则记住第二个Server要启动后才能用。
SQL2000和SQL2005的卸载都不能通过光盘卸载,必须在“添加/删除”里卸载。
如果只安装SQL2000的客户端则安装路径不能选择,卸载时可以通过光盘卸载。
2)改Server被别人登陆时候使用的验证方式:右键点server名-“Edit SQL Server Registeration Properties”。
改某个用户的属性如登陆方式:到数据库引擎中的Security文件夹中-Logins-双击右面视窗中的某个用户则出现修改页面。

3)两种连接字符串的写法:
“Driver={SQL Server};Server=LIJIANQIANG\SQLSERVER2;DataBase=OBFM;user id=HSLCN\jqli;password=ass;”
“workstation id=10.167.9.83;packet size=4096;integrated security=SSPI;data source=LIJIANQIANG\SQLSERVER2;persist security info=False;initial catalog=OBFM”
4)转移另一个数据库的方法:先备份-右键此数据库-All Tasks-Back Up Database-设置保存的路径Destination后点OK;再新建一个数据库-右键此数据库-All Tasks-Restore Database-General里选From device之后选源表-Options里选Eject taps~~和Force restore over~~,之后Original File Name保持默认,Restore As处设置新生成的数据库数据的目的路径和文件名字,点OK即可生成新的数据库;
再备份SQL2005时,要记住在Destination栏里只 有一个路径,否则如果有2个那么被备份的数据会被分摊到两个文件里,则恢复时不能成功。在恢复时要注意要覆盖的目标路径默认为源数据库的安装路径,如果目 标数据库的安装路径不一样则要手动改一下,否则会报找不到路径的错误。

5)在存储过程中加上exec pGetDepartmentByPara 'aaa', 'bbb'可测试存储过程pGetDepartmentByPara(@searchCategory nvarchar(20), @searchKey nvarchar(300)),其中后面两个是参数。
用光标亮选哪个语句,点执行后就执行被选择的语句。

6)select distinct age from [Person],加distinct可以避免选出重复的值。

7)问题:
Cannot connect to LJQ2.
Addition information:
Timeout expired. The timeout period elapsed to completion of the operation or the server is not responding.(Microsoft SQL Server)
原因:
安装有SQL2005的电脑上,微软操作系统默认提供的Windows Firewall防火墙拦截了另一个电脑的访问数据库的请求。
解决:
Control Panel-Windows Firewall-Exceptions-Add Program-Browse选“C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe” -确定。这样就添加到了防火墙里,就可以被访问了。

如果要建立“Microsoft SQL Server Analysis Services”数据源则要加入“C:\Program Files\Microsoft SQL Server\MSSQL.2\OLAP\bin\msmdsrv.exe”到防火墙,不让防火墙阻挡对此程序的访问。

8)
SQL2005改集成验证模式为混合验证模式的方法:
打开SQL Server Management Studio-用数据库管理员登陆-右键数据库引擎-Properties-Security-此处可以更改了。

让某个用户可以访问某个数据库的方法:
Security 文件夹-右键某用户-Properties-User Mapping-勾选相应数据库,Default Schema处可以选dbo-Database role membership for: Collector处可以选db_owner和public

Dreamweaver
1)Dreamweaver MX显示汉字为乱码的解决方法:
以前经常遇到此问题,推荐几种解决方法:

   a.在“编辑”-“首选参数”中设置“新建文档”->默认编码:utf-8或者gb2312(取决于你的网页编码),并勾选“当打开未指定编码的现有文件时使用”;此时每次打开文件时都没有乱码了,也不额外加代码。

   b. 当文件已经打开,并显示乱码时,选择"修改"菜单->页面属性->标题/编码,选择正确的编码方式:通常为utf8或gb2312(取决于你 的网页编码),然后点击"重新载入";此时给文件加了<meta http-equiv="Content-Type" content="text/html; charset=gb2312">语句。

   c.升级至Dreamweaver 8。

2)当框架的边框看不到时,在工具栏里点击“视图选项”-“可视化助理”-“框架边框”选上就可看见边框了。


Perforce  
P4快捷键:

F6-Pending Change-lists
F7-Submitted Change-lists
F10-Client-specs
F11-Users

P4使用注意事项:
1)在VS2003中当“添,删,改(改文件名字)”文件时,工程文件会发生改变,且此文件用的人多,所以此文件用时才打开,用完立即上传。
2)上传代码前务必将本地代码同步成最新的并调试通过后再上传。
3)当文件因和服务器文件版本不一样时而不能提交时,可在P4上右键此文件-Resolve-Schedule File for Resolve来使版本更新。

虚拟机  
1)当启动虚拟机时要用鼠标点击工作窗将虚拟机窗口激活才能使按F2键进入BOIS设置相应的东西。
2)如果重装虚拟机的系统则可以从光盘启动,在BIOS里在Boot里用Shift和+将ROM上移到最上面。
3)如果系统已经启动后要改变CD-ROM的ISO源可以不关闭系统,直接在左面Favorites里右键那个虚拟机选Settings之后设置CD-ROM。
4)在虚拟机上也可以用“Open Existing VM or Team”打开一个以前建立的虚拟机备份。
5) 如果操作系统已经启动则在Favorites里右键操作系统选Settings-Ethernet的Network connection选Bridged: Connected directly to the physical network时,此虚拟机相当于一台独立的电脑,在其内部配置其自己的Network Connections属性的IP则可以被域中其他电脑访问。

Windows Server 2003  
安装:
如果安装完毕后汉字都为乱码“方框”,请Start-Control Panel-Regional and Language Options的Languages里勾选Install files for East Asian languages并安装。
如果一些软件安装时的默认路径的中文为“问号”且自解压不能成功时,请Start-Control Panel-Regional and Language Options的Advanced里改成Chinese(PRC)。

配置域控制器时:
在请Start-Control Panel-右键Network Connections选Open右键连接选Properies打开TCP/IP的属性,注意此处的IP,子网掩码为255的对应的IP要相同的不同的计算机才能互相访问。
用域用户登陆后要想能在机器上安装软件要将此域用户加入到本地管理员组里,右键My Computer-Manage-Local Users and Groups-Groups里右键Administrators选属性加入域用户cs\ljq2
当域用户登陆过一次本机后,下次登陆时即使域控制器没有启动或网络没有连上,也能登陆到本机上,这样可以实现“本机做为域中的某个用户安装TFS,本机上的虚拟机做为域控制器,只有第一次本机登陆时要借助第二台实体电脑(上面有相同的域控制器服务)”
域控制器和域用户的时间都保持一样才能互相访问。

在Start-Run里用到的一些命令:
AZMan:run-azman.msc或run-mmc

VSTS  
1)一台电脑既做域控制器又做TFS的方法:
在 一台临时的电脑B上安装虚拟机并在此虚拟机上安装域控制器,在A电脑上安装TFS(以B的虚拟机做为域控制器),一切成功后,将B的虚拟机上的操作系统文 件拷贝到A上,关掉B上的虚拟机,打开A上的虚拟机域控制器(此时为虚拟机Creater一个新的UUID),此时一台电脑上可运行二者了。

2)服务器端的TFS安装:
安装SQL Server 2005企业版后最后用TFS自带的补丁而不要用sp1,因为好像sp1可能会导致Integration Services不能启动,sp1也可能会影响Reporting Services不能使用。

安装TFS时如果出现下面的错误:
“Error 32000. The command line '"C:\prgram Files\Common Files\Microsoft Shared\Web Server Extensions\60\bin\Stsadm.exe" ...' returned non-zero value -1.”
则可能是SQL Server和Sharepoint的安装顺序不对,WSS要装在SQL Server之后,解决的办法是卸掉WSS重装,参见:
http://blogs.msdn.com/willbu/archive/2006/08/23/Common-Team-Foundation-Server-installation-errors-and-possible-resolutions.aspx 
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1631657&SiteID=1 

3)客户端的安装:
安装Team Explorer时,需要经过两次重启才能安装完,期间在重启后要保证光驱中有安装盘,会自动继续安装的;安装完后还要重启一遍。

如果用Project2003访问TFS时,如果提示TF86002:lack of .NET Programmability Support in the Office Application.则要打开Microsoft® Office Project Professional 2003 (English) 选择安装之后安装.NET Programmability Support就可以了。

用VS2005连接TFS时“Tools-Connection to Team Foundation Server-Servers-Add-Server name:填写安装有TFS的且在域里的电脑的计算机名如LJQ2”

4)如果用虚拟机做域控制器,如果此虚拟机所运行的操作系统文件是拷贝过来的,或者承载此虚拟机的操作系统被还原后,这些情况都可能导致以此虚拟机为域控制器的TeamFoundationServer的TFSServer域账号过期而使TFS服务启动失败。
解 决办法:将将A电脑上的虚拟机上的操作系统(是域控制器并含有被TFS使用的TFSReporting和TFSService帐号)拷贝到另一个电脑B 上,在B上启动此域控制器操作系统,在域控制器上将域用户的密码更新一遍(更新成和原来的一样),之后在A电脑上(装有TFS的电脑上)重新登陆一遍,此 时TFS成功启动,这时将B上的域控制器拷贝到A电脑上,关B上的虚拟机,启动A电脑上的虚拟机域控制器(其间要选Create一个新的UUID为虚拟 机),此时A上的TFS可用,如果此前A上的TFSServerScheduler服务已经停止则要先启动此服务才能使TFS可用。

IIS  
1)发布站点后,访问页面提示下面错误:

错误:

Server Application Unavailable

The web application you are attempting to access on this web server is currently unavailable.  Please hit the "Refresh" button in your web browser to retry your request.

Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.

解决:

如果你运行WinXP/IIS 5.1,为了给ASPNET工作进程访问你的web工程文件夹的权力请到网站文件所在的目录,右键一级文件夹,选SecurityAdd-键入“ASPNET”,点击OK或点击Check Names,如果弹出对话框提示“Name not Found”则应点击Locations改变位置到本机计算机名,点击OK,分配此用户权限为“Full Control”点击OK

错误变为:
You are not authorized to view this page

You do not have permission to view this directory or page using the credentials you supplied.

解决:

IIS里右键此虚拟目录-PropertiesDirectory SecurityEdit-勾选上Integrated Windows authentication即可。



测试 
LoadRunner8.1既可以装在Windows Server 2003上也可以装在XP上,但系统最好是刚刚装的,不要装其他软件,好像尤其不能装VS2005,否则不能安装成功。
LoadRunner7.8 和LoadRunner8.0的破解协议是通用的,LoadRunner8.1的破解可以通过拷贝C:\Program Files\Mercury\LoadRunner\bin里的LoadRunner7.8或LoadRunner8.0的lm70.dll和 mlr5lprg.dll来覆盖LoadRunner8.1的实现破解。
安装前可以先把当前时间后退到以前的一年,安装中输入破解的协议,安装后 恢复当前时间,这样LoadRunner的协议就只有一个被破解的协议而那个试用版本的协议就没了。但如果没这样设置而有那个试用版的协议也不要紧,等到 过期后LoadRunner会自动使用那个被破解的协议。
posted on 2007-08-14 10:53  ymz  阅读(3784)  评论(0编辑  收藏  举报