关于多个客户端同时访问服务端程序问题,求教

bfswyh 2003-08-29 09:36:03
我们做了一个ASP.net的数据库访问系统,但是启动的时候存在这样的问题:两台或两台以上的客户端访问服务端的ASP.net程序的时候,如果是同时访问同一个程序,则只有其中一台客户端能够正确显示程序界面,其余的不行。访问数据库的时候,两台以上的客户端同时通过服务端的Asp.net程序访问数据库的时候,则只能有一台并且只有一台能够得到需要的数据,其余的没有反映,此问题非常棘手,希望高人赐教。

现将该程序的一部分代码附上,希望高人能够指点迷津。

//后台页面加载函数(连接数据库和初始化)

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

objDFSMS0050 = SingletonManager.GetInstance(Session, GetType(DFSMS0050.DFSMS0050.inst)) //初始化

If Not IsPostBack Then

objORAENV.ConnectString = Right(Request.Url.Query.ToString, Len(Request.Url.Query.ToString) - 1)

Call Set_TextBox(Me)
strTitle = SetAtr_SMF0050() //用简单的读取txt文件的方法将界面上的文字按照txt文件的指定显示出来
ORA_CHECK() //连接Oracle数据库
.............

End If
End Sub

说明:初始化是对该程序用到的“公用”变量初始化,这些变量背封装在一个类中,例如:
Public Class DFSMS0050
Inherits System.Web.UI.Page
Public Class inst : Inherits System.Web.UI.Page : Implements ISingleton
Public SAV_LANG_CLS As New VB6.FixedLengthString(2)
.................
End Class
Private p As inst
Private Sub New()
p = SingletonManager.GetInstance(Session, GetType(inst))
End Sub
End Class

并作如下定义:
Public objDFSMS0050 As DFSMS0050.inst

关于“objDFSMS0050 = SingletonManager.GetInstance(Session, GetType(DFSMS0050.DFSMS0050.inst))”的SingletonManager是这样定义的:

Public Interface ISingleton
End Interface

Public NotInheritable Class SingletonManager

Public Shared Function GetInstance(ByRef s As Web.SessionState.HttpSessionState, ByVal tp As Type) As ISingleton

Dim obj As Object = s.Item(tp.ToString)

If obj Is Nothing Then
Dim con As System.Reflection.ConstructorInfo = tp.GetConstructor(System.Type.EmptyTypes)
obj = con.Invoke(New Object() {})
s.Add(tp.ToString, obj)
End If

Return obj
End Function

End Class

多客户端同时访问的问题非常急,请高人指点迷津,在此先谢了~~~~
...全文
132 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bfswyh 2003-08-29
应该不是独占数据库

楼上这位老兄说的“数据库访问的连接不要是静态类。。。”是什么意思?举个例子好吗?

特别奇怪,似乎是同时访问的时候,一方成功,而其他客户端的对象变成了空似的
回复
minrange 2003-08-29
不会是独占数据库吧?

还有数据库访问的连接不要是静态类。。。
回复
bfswyh 2003-08-29
可是,这个程序的vb.net版本没有这个问题,数据库的最大连接设置应该没有问题,原有程序中也没有控制呀,ASP版本的是在VB.NET版本上移植的,本着功能能不变则不变的原则移植的。高手请赐教!!
回复
batisituta 2003-08-29
有两种可能:
1.原有程序中有控制,不能同时让两个用户登陆。
2.数据库的最大连接设置有问题。
回复
bfswyh 2003-08-29
或者哪位大侠举一个能够成功实现的例子,教一下实现的方法啊
回复
bfswyh 2003-08-29
Up Up,大家帮帮忙~~
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2003-08-29 09:36
社区公告
暂无公告