에서 나는 vb.net에서 웹 사이트에 대한 몇 가지 코드에서 작업하는 C#을 dev에입니다. 우리는 32bit iss 6 win 2003 상자에서 많은 캐싱을 사용하고 어떤 경우에는 OutOfMemoryException 예외를 발생시킵니다. 이 ... 코드가 내가 다시 그것을 추적하고 다른 사람이 가지고있는 경우 알고 싶습니다System.OutOfMemoryException이 발생했습니다. System.Text.RegularExpressions.CompiledRegexRunner.Go에서 Go60505 (RegexRunner)()
Public Sub CreateQueryStringNodes()
'Check for nonstandard characters'
Dim key As String
Dim keyReplaceSpaces As String
Dim r As New Regex("^[-a-zA-Z0-9_]+$", RegexOptions.Compiled)
For Each key In HttpContext.Current.Request.Form
If Not IsNothing(key) Then
keyReplaceSpaces = key.Replace(" ", "_")
If r.IsMatch(keyReplaceSpaces) Then
CreateNode(keyReplaceSpaces, HttpContext.Current.Request(key))
End If
End If
Next
For Each key In HttpContext.Current.Request.QueryString
If Not IsNothing(key) Then
keyReplaceSpaces = key.Replace(" ", "_")
If r.IsMatch(keyReplaceSpaces) Then
CreateNode(keyReplaceSpaces, HttpContext.Current.Request(key).Replace("--", "-"))
End If
End If
Next
End Sub
.NET Framework 버전입니다 : 2.0.50727.3053; ASP.NET 버전 : 2.0.50727.3053
오류 :
Exception of type 'System.OutOfMemoryException' was thrown. at Go60505(RegexRunner) at System.Text.RegularExpressions.CompiledRegexRunner.Go() at System.Text.RegularExpressions.RegexRunner.Scan(Regex regex, String text, Int32 textbeg, Int32 textend, Int32 textstart, Int32 prevlen, Boolean quick) at System.Text.RegularExpressions.Regex.Run(Boolean quick, Int32 prevlen, String input, Int32 beginning, Int32 length, Int32 startat) at System.Text.RegularExpressions.Regex.IsMatch(String input) at Xcite.Core.XML.Write.CreateQueryStringNodes() at Xcite.Core.XML.Write..ctor(String IncludeSessionAndPostedData) at mysite._Default.Page_Load(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at
감사
CreateNode는 어떻게됩니까? –