Asp.net中数据并发如何处理?

Asp.net中数据并发如何处理?,第1张

你的ID不是自动增长的那种?如果不是那你就算一个表也得考虑并发啊 假定你用的是SQL Server如果你的ID是自动增长的, 那使用 SCOPE_IDENTITY() 来返回, 如下declare @newId intinsert into table_A (column1, column2) values(v1, v2)select @newId = SCOPE_IDENTITY()insert into table_B (idcolumn, column3, column4) values (@newId, v3, v4)select @newId /* add this line if you want use the new id in your C# code */ 如果你的ID不是这样的, 那你得用事务, 然后锁表了, 建议单开一个表用来存储最后一个ID值。declare @newId intselect @newId = NextId from identity_log with (UPDLOCK) where tablename = 'table_A'insert into table_A ...insert into table_B ...UPDATE identity_log set NextId = @newId + 1 where tablename = 'table_A' 这段代码要运行在事务中, 推荐使用 SqlTransaction 或 TransactionScope当然也以把以上的SQL改一下, 加个 begin tran, rollback tran, commit tran, 并正确使用 if(@@error <>0)

1、数据库有主键。插入数据不会出现你说的什么错误或不稳定吧

2、调用sql对数据库修改本身是自动上锁的。

如果要保证程序逻辑的一致性需要使用事务。

3、比如主键递增这种情况,或者只要是有主键。

4、程序无论用什么方式,都不可能在数据库中插入两条主键相同的记录。

5、同时多人使用,是否包括一种情况:同时多人修改(包括删除)。如果仅仅是同时多人添加,那么毫无问题。不会有并发问题

6、如果存在同时多人修改的可能性的话,那就需要用“开放式并发”或“非开放式并发”。

7、开放式并发”相对简单。即:一个人修改并提交,被告知原始数据已被修改,则报错自己找找这方面资料吧,VS与.NET已经集成了一些简单实现的方法。

不应该这么问,.NET是一个框架,用的是IIS发布,是IIS的撑不住压力.

在服务里关闭iis admin service服务

找到windows\system32\inesrv\下的metabase.xml

相关说明设置如下:

AspSessionMax

作用:属性指定了 IIS 允许的最大并发会话数。当达到该限定时,如果客户端试图与 IIS 建立新连接,则客户端将接收到不正确信息(HTTP 500"服务器太忙")。

AspRequestQueueMax

作用:该属性指定了允许进入队列的并发 ASP 请求的最大数目。在队列占满时,任何试图请求 ASP 文件的客户端阅读器都将收到 HTTP 500"服务器太忙"的不正确。

留心:在 IIsWebService 级别上配置该属性可运用于所有级别上的所有进程内的和共用的进程外运用 程序项。进程内的和共用的进程外运用 程序忽略 IIsWebServer 级别及更低级别上的配置数据库配置。但是,如果该项是进程外的隔离运用 程序,则运用 IIsWebServer 级别或更低级别的配置。

改完后运行iis admin service.

如果好给我加分哦


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/53356.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-25
下一篇2023-02-25

发表评论

登录后才能评论

评论列表(0条)

    保存