System.Data.SqlClient.SqlException (0x80131904): истекло время ожидания после обновления хранимой процедуры
Я получаю ошибку:
System.Data.SqlClient.SqlException (0x80131904): истекло время ожидания.
в моем приложении C#. Проблема возникает после того, как я обновил хранимую процедуру в базе данных.
Вот мой код C#.
try
{
string connectionString = ConfigurationManager.ConnectionStrings["dsmmdb"].ToString();
connection = new SqlConnection(connectionString);
//Build query
string sql = string.Format("EXEC [DSMMTracker_ACQ_GetGeoByIp] @IpAddress = N'{0}'", serverVarRemoteAddr);
log.Debug(sql);
connection.Open();
SqlCommand cmd = new SqlCommand(sql, connection);
//Execute DSMMTracker_ACQ_GetGeoByIp stored procedure
var geoReader = cmd.ExecuteReader();
while (geoReader.Read())
{
target.Geo = ACQConfig.PREFIX_TOKEN_GEO_COUNTRY + geoReader["CountryCode"].ToString().ToLower() + "+";
target.Geo += ACQConfig.PREFIX_TOKEN_GEO_CITY + geoReader["CityName"] == null ? "" : ACQConfig.PREFIX_TOKEN_GEO_CITY + geoReader["CityName"].ToString().ToLower() + "+";
target.Geo += ACQConfig.PREFIX_TOKEN_GEO_REGION + geoReader["RegionName"] == null ? "" : ACQConfig.PREFIX_TOKEN_GEO_REGION + geoReader["RegionName"].ToString().ToLower();
log.Debug("Country Code: " + geoReader["CountryCode"].ToString().ToLower());
log.Debug("City Name: " + geoReader["CityName"].ToString().ToLower());
log.Debug("Region Name: " + geoReader["RegionName"].ToString().ToLower());
target.Geo = target.Geo.TrimEnd('+');
}
}
catch (Exception ex)
{
log.Error("Error retrieving geo information from IP address: " + ex.ToString());
}
finally
{
if(connection != null && connection.State == System.Data.ConnectionState.Open)
connection.Close();
}
Хранимая процедура работает правильно в SQL Server Management Studio.
Ошибка запуска при запуске кода C#.
Благодарю.
1 ответ
Использование
string connectionString = ConfigurationManager.ConnectionStrings["dsmmdb"].ConnectionString;
вместо:
string connectionString = ConfigurationManager.ConnectionStrings["dsmmdb"].ToString();