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

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

多客户端同时访问的问题非常急,请高人指点迷津,在此先谢了~~~~
...全文
193 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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,大家帮帮忙~~

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧