xbox360孤单危机3:网页有错,有图片看看怎么调试了

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 12:31:44

不同层的session在timeout后不能跨层访问的原因。
我又个项目,其中两个层用到session.
1.web层,直接是asp.net页面的代码
UIProcess层, 供页面调用的类层,引用System.web 使得可以直接访问session
在代码运行中,UIProcess层会设置session.
Public Shared Sub ShowInfoPage(ByVal info As InfoPageInfo)
Session.Item("InfoPageInfo") = info
Load(PageIdItem.InfoPage)
End Sub在session中储存info对象

在页面中,会读取这个session

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
'If Not IsPostBack Then
'Try
Dim info As InfoPageInfo
info = CType(Session.Item("InfoPageInfo"), InfoPageInfo)
With info
If Not .infoHeader = String.Empty Then Me.infoHeaderText = .infoHeader
Me.InfoMessage = .infoMessage
If Not .RedirectUrl = String.Empty Then Me.RedirectUrl = .RedirectUrl
If Not .RedirectMessage = String.Empty Then Me.RedirectMessage = .RedirectMessage
End With
'Catch ex As Exception

'End Try
'Session.Item("InfoPageInfo") = Nothing
' End If
End Sub
在调试运行中,这个设置和读取是没问题的。
但隔一段时间后,再去做同样的操作,设置部分代码允许正常,但读取部分总返回nothing.
困惑中,有人知道为什么不?
posted @ 2006-04-03 23:41 whale 阅读(268) | 评论 (2) | 编辑 收藏

2005年11月27日 VB运行调试时提示不能修改
现象:有一次在修改了某些代码后,确认是没错的,把代码签入(check in)到VSS中,在我机上还保留着check out状态,另一个同事取了我最新的代码。运行时弹出警告窗口"can't edit module" 奇怪,我们是在运行,不是在编辑呀,他只是取下来运行,并且我在check in前也运行正常的。怎么现在会出现这么奇怪的错误呢。我在我的机器上又运行了一遍,还是没问题。

原因:百思不得其解的时候,我把代码完全的check in再运行,嗨,我自己的机器也出问题了。在他那里check out 没问题,重新check in 又有问题了。在网上找了一番也没找到正确的原因。

我们冷静下来仔细分析,这种警告以前都是在编辑的时候,由于文件是只读的才会提出警告。我们是有VSS来管理代码的,如果是check in状态,它就是只读的没错,但我们是在运行不是在编辑它呀。那是否意味着VB自动会修改部分代码呢。又哪些代码会被它修改呢。

解决:再仔细的查看代码,发现是有个事件处理程序里面是空的。难道就是这个。把哪个空的处理程序删除后,check in再运行就再也没有出错了。

总结:VB里面的事件处理程序名字是固定的,不象.net那样需要绑定委托。如果一个事件的处理里面是空的话,在运行时,VB会尝试把哪个过程去掉。但在VSS环境下,check in了是只读的。VB自己也不能修改这个文件。结果就弹出"can't edit module"警告窗口了。

posted @ 2005-11-27 12:14 whale 阅读(47) | 评论 (0) | 编辑 收藏

.net调试时,计算机调试管理服务被禁用的解决
错误:今天打开一个.Net的项目,在运行调试的时候弹出错误警告“计算机调试管理服务被禁用” 无法进行调试

原因:记得前几天曾经设过哪里有关于调试的。当时应该是想着平常的程序出错,网页代码出错也老出来是 否进行调试的窗口,于是把那个调试关闭了。

在网上搜索,看到microft的网站上有提到关闭调试。于是在IE的internet选项的高级中把禁止脚本调试(Internet Exploer)和禁止脚本调试(其他)去掉。应用,关闭IE, 再运行调试,结果还是出来同样的错误。

重启,一看,居然那个禁止脚本调试(其他)的选项还是选中。

解决:只好在控制面板打开管理工具>>服务,在列表中逐个查找,看见有一个服务是Machine Debug Managerd 描述是:支持对 Visual Studio 和脚本调试器进行本地和远程调试。如果该服务停止,调试器将不能正常工作。
我想就是这个了,重新设置为自动,并启动它,再进行调试,顺利的通过了。

posted @ 2005-11-27 11:58 whale 阅读(169) | 评论 (2) | 编辑 收藏

2005年10月28日 局部变量的生命周期和委托的关系
通常,在VB6中,一个在局部变量在这个域外面就会销毁对象,在.NET中,通常也是这样的。
例子,在下面的代码中
public class clsMain
{
public void newListen()
{
new clsListen()
}
}

这个函数newListen里面,建立了一个clsListen对象,但没有赋值给任何外部的变量,那么,这个clsListen的实例是不是建立后就销毁了呢。
下面有个例子,这个例子里面一共有3个类,分别是clsMain, sendEvent, clsListen. sendEvent 类有一个静态的事件OnNewEvent, 它的方法ShowNewEvent 里会触发这个事件。

clsListen类的构造函数中会用处理函数sendEvent_OnNewEvent来侦听sendEvent的OnNewEvent事件。
clsMain类中有个方法,在这个newListen方法中创建一个clsListen的实例。
再看下面代码:

1public class sendEvent
2{
3public static event System.EventHandler OnNewEvent;
4 public static void ShowNewEvent(object sender,System.EventArgs e)
5 {
6 if(null !=OnNewEvent)
7 {
8 OnNewEvent(sender,e);
9 }
10
11 }
12}
13 public class ClsListen
14 {
15 private int _instance;
16 public static int sInt;
17 public ClsListen()
18 {
19 //
20 // TODO: 在此处添加构造函数逻辑
21 //
22 _instance=0;
23 //' sendEvent.OnNewEvent +=new EventHandler(sendEvent_OnNewEvent);
24 }
25 public void sendEvent_OnNewEvent(object sender,System.EventArgs e)
26 {
27 _instance+=1;
28 sInt++;
29 System.Windows.Forms.MessageBox.Show(_instance.ToString());
30 }
31 }

在上面的代码中,clsListen的实例是在clsMain的一个方法里创建的。创建后是否会销毁呢。那我们再重看看clsMain类,我在这个类的构造函数里面这样写:
public class clsMain
{
public clsMain()
{
newListen()
sendEvent.showNewEvent()

}
public void newListen()
{
new clsListen()
}
在上面代码中,clsMain先在newListen中创建一个clsListen, 这个clsListen实例是在函数里面的。那照理它应该接着就会销毁了。在接着的语句中会触发一个sendEvent 的事件。

运行以上的代码(还需要在某个main()函数来启动程序并先实例clsMain类。你会发现运行结果是进入了listen的事件处理程序。那就是说,这个listen的实例是真确存在的。

以后我会讨论对象侦听普通类事件对对象生命周期的影响。怎样才能撤掉这些对象等等。
第一次写东西,希望大家不吝指教以后我会努力写得更简洁完善。