Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PCRE.NET中的C#堆栈溢出错误_C#_Asp.net_.net_Pcre_Pcre.net - Fatal编程技术网

PCRE.NET中的C#堆栈溢出错误

PCRE.NET中的C#堆栈溢出错误,c#,asp.net,.net,pcre,pcre.net,C#,Asp.net,.net,Pcre,Pcre.net,我使用(Perl兼容的.NET正则表达式)lib。我有一个有趣的错误,有两个应用程序。一个是Asp.net应用程序,另一个是控制台应用程序。我的控制台应用程序工作正常,但Asp.net应用程序出现错误(Stackoverflow) 我可以为Asp.net应用程序做什么 控制台应用程序: static void Main(string[] args) { string test = ""; using (var streamReader = new St

我使用(Perl兼容的.NET正则表达式)lib。我有一个有趣的错误,有两个应用程序。一个是Asp.net应用程序,另一个是控制台应用程序。我的控制台应用程序工作正常,但Asp.net应用程序出现错误(Stackoverflow)

我可以为Asp.net应用程序做什么

控制台应用程序:

static void Main(string[] args)
    {

        string test = "";

        using (var streamReader = new StreamReader(@"c:\file.txt", Encoding.UTF8))
        {
            test = streamReader.ReadToEnd();
        }

        var matches = PcreRegex.Matches(test, @"(\/\*(?:(?!\/\*).|(?1))*?\*\/)(*SKIP)(*F)|^\s*CREATE |^\s*ALTER |^\s*DROP |^\s*GRANT ", PcreOptions.MultiLine | PcreOptions.Singleline | PcreOptions.IgnoreCase).ToList();

    }
protected void Page_Load(object sender, EventArgs e)
    {
        string test = "";

        using (var streamReader = new StreamReader(@"c:\file.txt", Encoding.UTF8))
        {
            test = streamReader.ReadToEnd();
        }

        var matches = PcreRegex.Matches(test, @"(\/\*(?:(?!\/\*).|(?1))*?\*\/)(*SKIP)(*F)|^\s*CREATE |^\s*ALTER |^\s*DROP |^\s*GRANT ", PcreOptions.MultiLine | PcreOptions.Singleline | PcreOptions.IgnoreCase).ToList();            
    }             
Asp.Net应用程序:

static void Main(string[] args)
    {

        string test = "";

        using (var streamReader = new StreamReader(@"c:\file.txt", Encoding.UTF8))
        {
            test = streamReader.ReadToEnd();
        }

        var matches = PcreRegex.Matches(test, @"(\/\*(?:(?!\/\*).|(?1))*?\*\/)(*SKIP)(*F)|^\s*CREATE |^\s*ALTER |^\s*DROP |^\s*GRANT ", PcreOptions.MultiLine | PcreOptions.Singleline | PcreOptions.IgnoreCase).ToList();

    }
protected void Page_Load(object sender, EventArgs e)
    {
        string test = "";

        using (var streamReader = new StreamReader(@"c:\file.txt", Encoding.UTF8))
        {
            test = streamReader.ReadToEnd();
        }

        var matches = PcreRegex.Matches(test, @"(\/\*(?:(?!\/\*).|(?1))*?\*\/)(*SKIP)(*F)|^\s*CREATE |^\s*ALTER |^\s*DROP |^\s*GRANT ", PcreOptions.MultiLine | PcreOptions.Singleline | PcreOptions.IgnoreCase).ToList();            
    }             
错误:

420cc350a653e64458da2ef4f8e4ac89.dll中发生类型为“System.StackOverflowException”的未处理异常


致以最诚挚的问候

嘿,我是lib的作者:)这里有一个有趣的错误,你能发布更多的堆栈跟踪吗?@lucastrezesniewski首先感谢你提供了这个lib。我查看了异常详细信息,但没有更多信息。“{无法计算表达式,因为当前线程处于堆栈溢出状态。}”。如何获取详细错误消息?嗯,是的,堆栈溢出完全破坏了应用程序,因此调试器。。。我会尽量在我这方面重复这个问题,但我不能保证时间范围。我从未使用ASP.NET对其进行过测试,但我怀疑这可能是一个与LibZ+appdomains相关的问题。*同时,我打开了一个问题。如果您愿意花几分钟时间,也可以尝试以下操作:克隆PCRE.NET存储库,以x86或x64模式构建解决方案(取决于您的平台),并在ASP.NET解决方案中引用获得的
PCRE.NET.dll
PCRE.NET.Wrapper.dll
,而不是NuGet包。如果此解决方法有效,则意味着这是一个LibZ问题(我使用它将两个程序集打包到一个DLL中,因此错误中的DLL名称看起来像GUID)。您试图与
(\/\*(?:(?!\/\*).|(?1))*?\*/)匹配的是什么,是C注释吗?如果是,为什么需要递归模式,因为注释不能嵌套(第一个
*/
关闭注释,即使之前有几个
/*