公司网站定期报错,重启IIS后就一切正常,有经验的帮忙一起分析一下!谢谢!

以下一大段是一些报错后的信息,所有这些报错在重启IIS后就全部没有了。

【1】


“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidCastException: 指定的转换无效。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 

堆栈跟踪:


[InvalidCastException: 指定的转换无效。]
   System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) +847
   System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) +113
   System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +344
   System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute(Expression expression) +49
   System.Linq.Queryable.First(IQueryable`1 source) +269
   ZKEShop.BizFacade.ProductSystem.GetProductCataNameByID(Int16 ProductCataID) +455
   ZKEShop.BizFacade.ProductSystem.printProCataIDBro(Int16 productCataID) +332
   YiLeWebSite.product.ProductList.ShowList() +3082
   YiLeWebSite.product.ProductList.Page_Load(Object sender, EventArgs e) +121
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

 

【2】

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

事务(进程 ID 56)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 事务(进程 ID 56)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。

源错误:

只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL:

1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如:

  <%@ Page Language="C#" Debug="true" %>

或:

2. 将以下的节添加到应用程序的配置文件中:

<configuration>
   <system.web>
       <compilation debug="true"/>
   </system.web>
</configuration>

请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。

重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。 

堆栈跟踪:


[SqlException (0x80131904): 事务(进程 ID 56)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1950890
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4846875
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
   System.Data.SqlClient.SqlDataReader.HasMoreRows() +157
   System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout) +197
   System.Data.SqlClient.SqlDataReader.Read() +9
   System.Data.Linq.SqlClient.ObjectReaderBase`1.Read() +49
   System.Data.Linq.SqlClient.ObjectReader`2.MoveNext() +12
   ASP.product_productlist_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) +1487
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +256
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.3623; ASP.NET 版本:2.0.50727.3618

 

【3】

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

事务(进程 ID 56)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 事务(进程 ID 56)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。

源错误:

只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL:

1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如:

  <%@ Page Language="C#" Debug="true" %>

或:

2. 将以下的节添加到应用程序的配置文件中:

<configuration>
   <system.web>
       <compilation debug="true"/>
   </system.web>
</configuration>

请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。

重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。 

堆栈跟踪:


[SqlException (0x80131904): 事务(进程 ID 56)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1950890
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4846875
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
   System.Data.SqlClient.SqlDataReader.HasMoreRows() +157
   System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout) +197
   System.Data.SqlClient.SqlDataReader.Read() +9
   System.Data.Linq.SqlClient.ObjectReaderBase`1.Read() +49
   System.Data.Linq.SqlClient.ObjectReader`2.MoveNext() +12
   ASP.product_productlist_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) +1487
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +256
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.3623; ASP.NET 版本:2.0.50727.3618

 

 

大致就是这类的信息,网站的首页是可以登录的,一点击进入内页就有很多类似的报错信息,这个网站有一点特殊,使用的是伪静态页面,也就是在Web.Config中使用如下的配置

      <!-- 咨询列表页面 -->
      <RewriterRule>
        <LookFor>~/cms/MoreArticle-(\d*)-(\d*)-(\d*)-(\d*)-(\d*)-(\d*)-(\d*)(-)?(.*)\.htm</LookFor>
        <SendTo><![CDATA[~/cms/MoreArticle.aspx?PageNo=$1&ArtKindID=$2&ProvinceID=$3&CityID=$4&CityZoneID=$5&SortByDate=$6&SortByStatus=$7&KeyWords=$9]]></SendTo>
      </RewriterRule>

 

希望高手指教

喵喵时光机
浏览 992回答 8
8回答

人到中年有点甜

推荐一篇参考文章:SQL Server死锁总结

慕神8447489

ProductList.ShowList 这个列表里面 用到的SQL语句或页面上有强制转换的地方 比如Convert等 并不是所有的数据有问题 只是某些特殊的数据不能转换就报错了 仔细检查一下把

POPMUISE

这个可以肯定是代码有问题。跟重启iis,伪静态没有关系。 如果有写错误日志,可以在本地还原错误,进行修改。

慕田峪9158850

我一开始接手也这样认为,但是当发生这个错误之后,去重新启动IIS,整个网站就全部正常了,不会再报错了

炎炎设计

数据库没关闭

慕运维8079593

关键的错误是SQL执行时死锁了,第一个错误是linq抛出的很有可能也是数据库错误引起的。如果这样的情况不是很有规律发生的话,我想一般都是SQL语句没优化或数据库设计不合理引起SQL查询期间资源锁冲突,虽然有时候感觉SQL不够优化不是大问题,但一旦并发执行就很容易出现这样的死锁或者数据库超时等等一系列问题,但程序重启后因为所有连接都释放了自然也就没问题了
打开App,查看更多内容
随时随地看视频慕课网APP