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

问题描述 投票:0回答:1

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

。Net框架:4.0

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

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

观察:当我研究进程探索时,然后从SYSWOW64中查找其dll。

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

iis stack-overflow 32bit-64bit wow64 syswow64
1个回答
0
投票

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

我们的客户在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/

© www.soinside.com 2019 - 2024. All rights reserved.