我正在为我的Sql数据库使用Enterprise Library Data。我使用的是3.1版。 我正在使用此代码执行长时间运行的sp(约1分钟)。
Dim db As SqlDatabase = New SqlDatabase(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("portalConnection").ConnectionString)
db.ExecuteNonQuery("spnametoexecute")
连接字符串看起来像这样
<add name="portalConnection" connectionString="Server=IP;Database=DBName;uid=User;pwd=PWD; Timeout=180;"
providerName="System.Data.SqlClient" />
Provlem是我总是得到一个TimeOut异常。那是为什么?
System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
答案 0 :(得分:2)
嗯,有几种可能性:
通常,第二个是问题。查看阻塞等(sp_who / sp_who2)以查看是否有任何块。并使用trace / profiler来调查第一个选项。
答案 1 :(得分:0)
我认为您设置了错误的服务器IP,或者您的服务器也没有配置。检查您的服务器配置中是否允许Pipes和tcp / ip。它经常被遗忘。
答案 2 :(得分:0)
您是否总是获得超时,或者仅在长时间运行的查询执行时?手动运行时 - 也就是说,在管理工作室中,需要多长时间?您的连接设置为3分钟超时,这是一个非常大的时间。
你需要在几个级别攻击它:
答案 3 :(得分:0)
我不太熟悉企业数据库,但我会看看Sql Database对象是否具有超时属性。尝试在代码中设置超时并测试行为。