System.Web.HttpUnhandledException

Я получил ошибку в моем aspx. Ниже информация об ошибке.

Error Message   : Exception of type 'System.OutOfMemoryException' was thrown.
Source          : mscorlib
StackTrace      : at System.String.GetStringForStringBuilder(String value, Int32 startIndex, Int32 length, Int32 capacity)
   at System.Text.StringBuilder.set_Capacity(Int32 value)
   at System.Xml.BufferBuilder.ToString()
   at System.Xml.XmlTextReaderImpl.ParseText()
   at System.Xml.XmlTextReaderImpl.ParseElementContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.XmlTextReader.Read()
   at System.Xml.XmlReader.ReadElementString()
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderService.Read3_GetXmlResponse()
   at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer9.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   -----
   -----
   -----
Target Site     : System.String GetStringForStringBuilder(System.String, Int32, Int32, Int32)

Может кто-нибудь мне помочь ?

Спасибо

13.10.2009 12:34:24
Не указывая на очевидное кровотечение, вам не хватает памяти. Когда это происходит в вашем aspx? У вас есть массивный массив, конвертируемый в строку или что-то подобное? Это не так много, чтобы продолжить.
Alastair Pitts 13.10.2009 12:38:58
5 ОТВЕТОВ

Вашему серверу не хватает памяти. Здесь действительно три возможности:

  1. Вам нужен новый сервер. Вероятно, не причина.
  2. Ваш сервер неправильно настроен. Возможность, особенно учитывая трассировку стека.
  3. Вы делаете что-то резко неправильно. Вероятно, причина.

Помимо этого, никто не сможет даже рискнуть догадаться о том, что не так, даже не увидев код, где происходит ошибка. Хотя, если это полная трассировка стека, может случиться так, что в игру вступит # 2. Может случиться так, что # 1 вступит в игру, если ваш сервер перегружен трафиком, но на самом деле на любом полу-современном сервере потребуется много трафика, чтобы вызвать ошибку нехватки памяти.

-1
13.10.2009 12:43:19

Не знаю, решит ли это вашу проблему или нет. Но, пожалуйста, посмотрите на это

Проблемы с System.OutOfMemoryException в System.String.GetStringForStringBuilder в 32-разрядных управляемых решениях

1
13.10.2009 12:43:51

Если вы хотите добавить текст в StringBuilder, а текущей емкости недостаточно, StringBuilder попытается удвоить его емкость.

Таким образом, максимальная емкость для строки составляет 2 ^ 32, но в вашем случае она захочет перейти с 17 МБ до 34 МБ. Может быть, вы пытаетесь добавить текст в большой StringBuilder?

0
13.10.2009 12:44:41

Вам необходимо использовать профилировщик памяти .NET, чтобы проверить утечки памяти в вашем приложении. http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=.NET+memory+profilers

Похоже, что вы работаете с очень большой строкой, или какие-то другие утечки памяти вызвали давление памяти.

0
13.10.2009 12:45:43

Ошибка возникает при доступе к веб-сервису, который возвращает xml. возврат будет использоваться в датированных.

0
13.10.2009 12:56:06