应用程序池-启用32位应用程序=错误,生成堆栈溢出错误

时间:2019-07-18 14:06:27

标签: stack-overflow 32bit-64bit wow64 syswow64

如果将其设置为True-IIS>应用程序池> DefaultApplicationPool> Enable32BitApplication,则应用程序正常运行。 但是,如果将其设置为False,则应用程序将运行,但在登录后会显示StackOverflowException。

.Net Framework:4.0

为什么它在32bit-true上正确运行,而使-false运行失败? 有足够的信息吗?如果需要,我可以提供更多。

我尝试了许多解决方案来解决-框架注册,ISAP,处理程序,ISAP-CGi限制,x64上的buid应用程序,但无法解决。

观察:当我查看进程探索文件时,然后从SYSWOW64下载它的dll。

请您帮忙,这对我们非常有用。

1 个答案:

答案 0 :(得分:0)

最近我们遇到了同样的问题,由于进行了更改,我们引入了一些新方法,从而大大增加了一些由数据驱动的自动生成代码中调用的方法的数量,与此同时,驱动代码生成的数据也大大增加了。 / p>

我们的客户在将Enable32BitApplication设置为false的情况下在IIS下运行我们的组件时遇到了同样的问题。

为IIS在2008R2和更高版本上创建的线程找出默认的堆栈大小,现在较小。参见:https://support.microsoft.com/en-us/help/932909/by-default-the-maximum-stack-size-of-a-thread-that-is-created-in-a-nat

我们能够通过使代码显式创建一个堆栈大小为1MB(这是IIS外部的默认值)的线程来解决此问题。我们的组件是用C#/。NET编写的。

如果无法以编程方式更改堆栈大小,则仍然可以按照以下说明使用editbinhttps://blogs.msdn.microsoft.com/tom/2008/03/31/stack-sizes-in-iis-affects-asp-net/