ASP.NET Web表单应用程序池设置



我们有一个应用程序池和一个旧的ASP.NET 2.0 WebForms应用程序使用专有库来连接到数据库。

我们将面对OutofMemoryExceptions,并且作为库是一个黑匣子,我们无法更改。我正在尝试确保正确设置应用程序池设置。

Web服务器已安装了8 GB的内存,并且应用程序池的设置为:

回收

私人内存限制(KB(:0常规时间间隔(分钟(:0请求。限制:0虚拟内存限制(KB(:3145728

您认为这是正确的吗?

例外消息:

Exception of type 'System.Web.HttpUnhandledException' was thrown.
ContentType: System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.Data.SqlClient.SqlBuffer.set_SqlGuid(SqlGuid value)
   at System.Data.SqlClient.TdsParser.ReadSqlValueInternal(SqlBuffer value, Byte tdsType, Int32 typeId, Int32 length, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.ReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ReadColumnData()
   at System.Data.SqlClient.SqlDataReader.ReadColumn(Int32 i, Boolean setTimeout)
   at System.Data.SqlClient.SqlDataReader.GetGuid(Int32 i)
   at Adam.Core.DataMapper.PagingDataReader.GetGuid(Int32 i)
   at Adam.Core.DataMapper.Fields.GuidTableField.AssignReader(IDataReader reader, Int32 columnIndex)
   at Adam.Core.DataMapper.ItemBase.AssignReader(IDataReader reader, SqlMappings mappings)
   at Adam.Core.DataMapper.ExtendedItemBase.AssignReader(IDataReader reader, SqlMappings mappings)
   at Adam.Core.Records.RecordCollection.Load(SearchExpression expression, String sortOrder, Int32 pageNumber, Int32 recordsPerPage, Boolean& isLastPage, Int32 maxRecords, RecordLoadOptions options)
   at Adam.Core.Records.RecordCollection.Load(SearchExpression expression, String sortOrder, Int32 pageNumber, Int32 recordsPerPage, Boolean& isLastPage, Int32 maxRecords)
   at Adam.Core.DataMapper.ExtendedItemBaseCollection.Load(SearchExpression expression, String sortOrder)
   at AssetFilePage.Page_Load(Object sender, EventArgs e) in e:AppWEBAPP.WebSitefile.aspx.cs:line 27
   at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
   at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   at System.Web.UI.Control.OnLoad(EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

预先感谢您。

我建议使用下面的设置作为起点:

私人内存限制(KB(:1048576

常规时间间隔(分钟(:1440

request.limit:10000

虚拟内存限制(KB(:1048576

将私有内存和虚拟内存限制为1GB,具有常规回收(24小时(和某种请求限制(0是无限的(。这将是监视您的应用程序并微调以下直到您获得最佳位置的情况。

请参阅此处以获取更多信息:https://technet.microsoft.com/en-gb/library/cc745955.aspx

最新更新