为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

喵喵时光机 2018-12-06 15:18:31
以下一大段是一些报错后的信息,所有这些报错在重启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>   希望高手指教
查看完整描述

8 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-01-21
?
慕神8447489

TA贡献1780条经验 获得超1个赞

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

查看完整回答
反对 回复 2019-01-21
?
POPMUISE

TA贡献1765条经验 获得超5个赞

这个可以肯定是代码有问题。跟重启iis,伪静态没有关系。

如果有写错误日志,可以在本地还原错误,进行修改。

查看完整回答
反对 回复 2019-01-21
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-01-21
?
炎炎设计

TA贡献1808条经验 获得超4个赞

数据库没关闭

查看完整回答
反对 回复 2019-01-21
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

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

查看完整回答
反对 回复 2019-01-21
  • 8 回答
  • 0 关注
  • 991 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信