如果我的.asmx Web服务只公开一个电话。一个需要一些参数并将这些值作为SQL Server 2005表中的记录插入。该方法应该尽可能地与ADO.NET连接池“相似”?如果要在多个客户端上调用它可能是每秒10次(展开),它应该是什么样子。我应该调整的其他任何设置?
目前我收到错误:
服务器无法处理
服务器无法处理请求 - > System.Data.SqlClient.SqlException:超时已过期。操作之前经过的超时时间或服务器没有响应。
如果连接池出现问题,错误是否会有所不同? 如何判断这是连接池问题,SOAP限制,还是我的数据库太繁忙以至于调用真的超时了?
答案 0 :(得分:1)
您没有发布有关您正在做的事情的一些最重要的信息。它是一个网络方法的事实是一个红色的鲱鱼,它只是归结为一个数据库问题,你有多少锤击它。
似乎您可能在此处遇到连接问题,因为异常状态(我不相信它与池有任何关系)。在尝试打开连接或尝试执行操作时,您是否收到此信息?每个都有一个单独的超时,因此明确打开连接然后调用该操作可能是个好主意,这样你就可以看到超时发生的位置。
另外,我会看看你是否在使用交易。如果这包含在连接中,并且超时是在操作上,并且您正在使用事务,那么您是否正在使用事务来访问包含在事务中的其他任何地方(读取或写入)的表?那时可能会陷入僵局。
除非所有这些,如果不是这样,那么这是一个连接问题,您必须查看机器和服务器是否配置正确(例如,您使用的是tcp ip,命名管道还是共享内存) )用于数据库操作。