2013-09-23 109 views
-1

我在IIS中使用递归函数。它使用以下代码:IIS中的堆栈溢出异常

void recursivefunction(int value) 
{ 
Random random=new Random(); 
int randomValue=random.Next(1,1000000); 
if(randomValue!=value) 
recursivefunction(value); 
else 
return randomValue; 
} 

当我在IIS中运行mvc程序时,此函数会抛出“StackOverflowException”。我知道这是因为调用堆栈大小超出了限制。

有没有办法增加调用堆栈的大小,所以我的程序不会频繁抛出这个异常?

当我在IIS中运行程序时,主要抛出了这个异常。

+0

感谢您的回答,我现在可以呈现在Windows Azure中的图像而没有任何问题 – Anandaraj

回答

2

您正在寻求粘性会话,这在今天Azure中不存在。您可以使用IIS的ARR自己实现它,但最终这对于可扩展,无状态,容错服务来说不是一个好方法。更好的方法是将图像放在一个公共存储库中,所有实例都可以访问它,例如blob存储。或者甚至更好,将图像放在blob存储中,并通过blob存储直接将其提供给客户端,而不是通过其中一个角色实例。

+0

你一定要使用Blob存储,不仅是因为这个原因,而是因为它的便宜到那里存放比在SQL表或移动存储。 – NRitH

+0

谢谢,我会试试 – Anandaraj

+0

对不起,我改变了这个问题,因为这个网站不允许我提出新的问题 – Anandaraj