Я надеюсь, что вы можете помочь мне с этой проблемой, так как я не понимаю, почему это так, я ценю вашу помощь.
У меня есть веб-приложение в веб-формах asp.net, когда я запускаю его на локальном компьютере. машина работает отлично, но когда я публикую его на сервере с IIS, это помечает ошибку, подобную следующей:
Истекло время ожидания. Период ожидания истек до получения соединения
из пула. Это могло произойти из-за того, что все пул
соединений использовались и был достигнут максимальный размер пула.
Насколько я понимаю, это относится к открытым соединениям.
Это мой код, где ошибка помечает меня. Я работаю с тремя слоями в asp.net и Visual Studio 2008.
Ошибка возникает при выполнении моего набора данных на уровне доступа к данным при отправке метода соединения для вызова.
Код уровня доступа к данным.
private string option_connectionchain()
{
string connection = ConfigurationManager.ConnectionStrings["db_Sales"].ConnectionString;
}
private SqlCommand connection(string commantext, SqlParameter commandparamaters)
{
string connection = option_connectionchain();
SqlConnection con = new SqlConnection(connection);
SqlCommand cmd = new SqlCommand(commantext, con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(commandparamaters);
return cmd;
}
//** This is my dataset where the error marks me.
public DataSet ExecuteDataset(string commantext, SqlParameter commandParameter)
{
DataSet ds = new DataSet();
try
{
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = connection(commantext, commandParameter);
da.Fill(ds);
}
catch (Exception ex)
{
throw ex;
}
return ds;
}
Это мой класс сущностей.
public class EUser
{
string user;
string user_name;
string position;
string location;
string roles;
public string User
{
get { return user; }
set { user = value; }
}
public string User_name
{
get { return user_name; }
set { user_name = value; }
}
public string Position
{
get { return position; }
set { position = value; }
}
public string Location
{
get { return location; }
set { location = value; }
}
public string Roles
{
get { return roles; }
set { roles = value; }
}
}
Это код бизнес-логики
EUser uEntity = new EUser();
public EUser Query_data(string User)
{
DataSet data = new DataSet();
DataTable user_data = new DataTable();
SqlParameter sqlparameter = new SqlParameter("@User", SqlDbType.VarChar);
sqlparameter.Value = User;
data = _connection.ExecuteDataset("Permissions_Menu", sqlparameter);
if (data.Tables.Count > 0 )
{
if (data.Tables[0].Rows.Count > 0)
{
user_data = data.Tables[0];
DataRow row = user_data.Rows[0];
uEntity.User = Convert.ToString(row[1]);
uEntity.User_name = Convert.ToString(row[2]);
uEntity.Position = Convert.ToString(row[3]);
uEntity.Location = Convert.ToString(row[4]);
uEntity.Roles = Convert.ToString(row[5]);
}
else
{
uEntity.User = "";
uEntity.User_name = "";
uEntity.Position = "";
uEntity.Location = "";
uEntity.Roles = "";
}
}
else
{
uEntity.User = "";
uEntity.User_name = "";
uEntity.Position = "";
uEntity.Location = "";
uEntity.Roles = "";
}
return uEntity;
}
Это код в слое транзакций
public EUer Query_data(string user)
{
return connection.Consulta_Datos(user);
}
Наконец, это мой код в слое презентации
if (!IsPostBack)
{
Transaction t = new Transaction();
EUser user_entity = new EUser();
System.Security.Principal.WindowsIdentity user = System.Security.Principal.WindowsIdentity.GetCurrent();
user_entity = t.Query_data(user.Name);
if (user_entity.User == "" && user_entity.User_name == "" && user_entity.Position == "" && user_entity.Location == "")
{
Response.Redirect("redirect to an external page",true);
}
else
{
lblUserWindows.Text = user_entity.User;
lblUser_name.Text = user_entity.User_name;
lblPosition.Text = user_entity.Position;
lblLocation.Text = user_entity.Location;
}
}
Как вы упомянули выше, моя ошибка - это когда я запускаю набор данных, хотя я не понимаю, почему он показывает эту ошибку во время публикации, поскольку перед публикацией он мне не показывался.
Может кто-нибудь помочь мне с любым решением?