作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一次又一次地遇到以下问题,我不知道该如何解决..
我经常收到以下错误,我不得不restart the IIS
或republish
临时解决了问题:
Error Message:Request timed out.
Error Message:ERROR [08S01] [Informix .NET provider]Communication link failure.
Error Message:Thread was being aborted.
<httpRuntime executionTimeout="600" />
Stack Trace:
at System.Web.HttpContext.InvokeCancellableCallback(WaitCallback callback, Object state)
at System.Web.UI.Page.AsyncPageBeginProcessRequest(HttpContext context, AsyncCallback callback, Object extraData)
at ASP.appmaster_aspx.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object data)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
protected void Page_Load(object sender, EventArgs e)
{
if (Session["emp_num"] != null && !string.IsNullOrEmpty(Session["emp_num"].ToString()))
{
try
{
string user_setting = Personalization_DAL.CheckWidgetSettings(int.Parse(Session["emp_num"].ToString()));
if (!string.IsNullOrEmpty(user_setting))
{
user_flag = int.Parse(user_setting);
}
GetLinkedApp = DB_Connection_s.DB_Connection.GetLinkedAppUser(int.Parse(Session["emp_num"].ToString()));
if (!Page.IsPostBack)
{
//Profile
GetProfile();
if (Session["emp_app"] != null && !string.IsNullOrEmpty(Session["emp_app"].ToString()))
{
BindAvailableSystems(Session["emp_app"].ToString());
}
BindMainSystems();
if (GetLinkedApp > 0)
{
rlv_available_sys.Visible = true;
h5_app.Visible = true;
lbtn_addApp.Visible = false;
h4_app.Visible = false;
intro.Visible = true;
}
else
{
rlv_available_sys.Visible = false;
h5_app.Visible = false;
lbtn_addApp.Visible = true;
h4_app.Visible = true;
intro.Visible = false;
}
//Applications
if (rlv_available_sys.Visible == true)
{
Session["emp_app"] = GetLinkedApp;
BindAvailableSystems(Session["emp_app"].ToString());
if (user_flag > 0)
{
Get_UserApplicationSystems(1, 1, GetLinkedApp.ToString());
}
else
{
Get_UserApplicationSystems(user_flag, 1, GetLinkedApp.ToString());
}
}
//services
Get_MainSystems(user_flag);
if (GetLinkedApp > 0)
{
GetServiceInformation();
}
string[] statistics = TrackUser();
base.TraceActivity("Enter the portal", "https://" + Request.Url.Authority + "/AppMaster.aspx", statistics[0], statistics[1], statistics[2]);
}
TraceSystemsMode();
}
catch (Exception ee)
{
string message = ee.Message;
}
}
else
{
Response.Redirect("LoginPage.aspx", false);
}
}
public void ProcessRequest(HttpContext context)
{
try
{
using(Stream photo_stream = Photo_DAL.RetrievePhoto(int.Parse(context.Session["emp_num"].ToString())))
{
byte[] photo_bytes = Photo_DAL.StreamToByteArray(photo_stream);
if (photo_bytes == null)
{
photo_bytes = File.ReadAllBytes(Path.Combine(context.Server.MapPath("~/images/PortalImages/"), "user.png"));
}
//context.Response.ContentType = "image/png";
context.Response.BinaryWrite(photo_bytes);
}
}
catch (Exception ee)
{
}
}
最佳答案
这是推测,因为从问题中发布的代码片段中看不到很多引用的代码。
我将基于以下几个原因来假设您未正确处理数据库连接(DB_Connection_s
)。
A)通过重置修复
I get the following errors frequently , and i had to restart the IIS or
republish to fix the problem temporary`
DB_Connection_s
,但是它并未包含在using块中,并且未实例化,这意味着它很可能是静态类或方法(很难为该引用提供代码)。
IDisposable
,然后使用using语句包装对该类的所有调用来实现的。 using语句将自动调用
Dispose
方法。如果您不想执行
IDisposable
,则在查询完成后,还可以通过直接在连接上直接调用
.Dispose()
来显式(不建议)处置数据库连接。
~DBConnection()
来处理您的连接,仅调用
.Close()
而不关闭流即可。
.Close()
是安全的,但它可能会在生产中引起问题。原因是连接将关闭,但事件处理程序将保留,有时,如果涉及延迟加载或动态代理,则这些事件处理程序可以保存连接的副本。
using(){}
类时使用
DBConnection
块。您可以进行一些更改以执行此操作:
public class DBConnection : IDisposable
{
//other methods already in here
public void Dispose()
{
//Close_Connection(); Call this if you want, but you MUST call
//.Dispose on your connections
connection.Dispose();
}
}
using( var DB_Connection_s = new DBConnection() )
{
//todo: interact with database connection
}
.Dispose()
时,using块将自动调用
}
并处置有保证的连接。此外,如果数据库访问涉及任何排队,这将使数据库发生的事务时间更短,这可以提高查询和请求的速度。
.Close()
更改为
.Dispose()
,并确保没有可能的执行路径,这会导致在完成数据库访问后不会立即调用
.Dispose()
。
.Dispose()
.Dispose()
。有几种方法可以执行此操作,但是最佳实践方法是使用
using(){}
块。我注意到您可以在一个地方专门用必须处理的代码流来实现这一点。
IfxDataReader ifxDataReaders = DB_Connection.DBCmd.ExecuteReader();
if (ifxDataReaders.Read()) {
item = (int)ifxDataReaders["emp_num"];
}
ifxDataReaders.Close();
.Close()
。其次,由于这是在try块中,因此ifxDataReaders可能会引发异常,并且程序将继续运行而不会关闭或处置读取器。这会引起很多问题。
.Dispose
称为
,始终为。您可以使用using块(隐式始终调用
.Dispose()
)来执行此操作。
using(IfxDataReader ifxDataReaders = DB_Connection.DBCmd.ExecuteReader())
{
if (ifxDataReaders.Read()) {
item = (int)ifxDataReaders["emp_num"];
}
}
关于asp.net - 请求经常超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11290643/
当运行 scala.util.Random().nextInt(3) 81 次时,我看到如下结果(Java 开发人员,请参阅 edit 了解这之间的关系): 200010202002112102222
在使用 native 应用程序在混合模式 C++/CLI 中调试时,我遇到了进程挂起问题。这是无法忍受的,我的调试几乎 70% 都会发生这种情况,我需要一次又一次地重新启动该过程。 是否有任何修补程序
我不知道这是一个错误还是某种误用/错误配置。希望有人能帮忙。谢谢! 如果我更改模块或 list 目录中的文件,通常会导致错误,大部分是以下类型 无法找到节点上的类 在节点上找不到定义类 当 Puppe
我是一名优秀的程序员,十分优秀!