2017-06-26 8 views
0

Wir haben einen Anwendungspool und eine alte asp.net 2.0-Webformularanwendung, die eine proprietäre Bibliothek verwendet, um eine Verbindung mit der Datenbank herzustellen.ASP.Net Web Forms-Anwendungspooleinstellungen

Wir stehen vor OutOfMemoryExceptions und da die Bibliothek eine Blackbox ist, die wir nicht ändern können. Ich versuche sicherzustellen, dass die Einstellungen für den Anwendungspool korrekt sind.

Der Webserver verfügt über 8 GB des installierten Speichers und die Einstellungen des Anwendungspools sind:

Recycling

Privater Speicher Limit (KB): 0 Reguläre Zeitintervall (Minuten): 0 Request.Limit: 0 Limit des virtuellen Speichers (KB): 3145728

Glauben Sie, dass es korrekt ist?

Ausnahmemeldung:

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:\App\WEBAPP.WebSite\file.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) 

Vielen Dank im Voraus.

Antwort

1

Ich würde Ihnen raten, die Einstellungen unten als Ausgangspunkt:

Privater Speicher Limit (KB): 1048576

Regelmäßige Zeitintervall (Minuten): 1440

Request.Limit: 10000

Virtual Memory Limit (KB): 1048576

Einstellen der privaten und virtuellen Speichergrenzen zu 1 GB, eine regelmäßige recycl mit e (24h) und eine Art Anfrage-Limit (0 ist unbegrenzt). Es wäre ein Fall der Überwachung Ihrer App und Feinabstimmung der unten, bis Sie den Sweet Spot bekommen.

Hier finden Sie weitere Informationen: https://technet.microsoft.com/en-gb/library/cc745955.aspx