我知道可以设置会话超时.但是,如果应用程序本身在给定的时间段内没有收到任何请求,IIS将关闭应用程序.
此行为可在IIS管理控制台中配置,我知道如何执行此操作.不过,我想知道是否可以在web.config中配置它.
我有一个应用程序,它利用RSACryptoServiceProvider使用已知的私钥(存储在变量中)解密某些数据.
当IIS应用程序池配置为使用网络服务时,一切运行正常.
但是,当我们将IIS应用程序池配置为在不同的标识下运行代码时,我们会得到以下结果:
System.Security.Cryptography.CryptographicException: The system cannot find the file specified. at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer) at System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters(RSAParameters parameters) at System.Security.Cryptography.RSA.FromXmlString(String xmlString)
代码是这样的:
byte[] input;
byte[] output;
string private_key_xml;
var provider = new System.Cryptography.RSACryptoServiceProvider(this.m_key.Key_Size);
provider.FromXmlString(private_key_xml); // Fails Here when Application Pool Identity != Network Service
ouput = provider.Decrypt(input, false); // False = Use PKCS#1 v1.5 Padding
Run Code Online (Sandbox Code Playgroud)
有些资源试图通过声明您应该授予用户对机器密钥库的读取权限来尝试回答它 - 但是没有明确的答案来解决此问题.
环境:IIS 6.0,Windows Server 2003 R2,.NET 3.5 SP1
我们的ASP.NET 2 Web应用程序非常优雅地处理异常.我们在Application_Error中捕获Global ASAX中的异常.从那里我们记录异常并向用户显示友好消息.
但是,今天早上我们部署了最新版本的网站.它运行了半个小时,但随后App Pool崩溃了.在我们恢复之前的版本之前,该网站没有恢复.
如何使应用程序池崩溃并跳过正常的异常处理程序?我试图复制这个问题,但到目前为止没有运气.
更新:我们找到了解决方案.我们的一个页面是屏幕抓图另一页.但URL配置不正确,页面最终屏幕自动无限,从而导致堆栈溢出异常.
我在运行IIS7的Web服务器上看到了很多用于回收应用程序池的脚本,但有没有办法通过PowerShell检查Web应用程序池是否正在运行或停止?我似乎无法找到远程让Get-WebAppPoolState返回应用程序池状态的方法,而我的Google-fu无法提供替代品.我可以远程让gwmi工作并回收或启动我的应用程序池,但理想情况下我只想在应用程序池实际停止时运行它.
我是否需要使用PSExec来解决这个问题,或者我是否可以使用类似于gwmi的替代方法并使用一行命令来调用IIS7服务器上的应用程序池并给我状态?
生产服务器上有很多麻烦.某些路由导致应用程序池崩溃,事件ID为1011:
事件类型:警告事件来源:W3SVC事件类别:无事件ID:1011日期:1/21/2009时间:9:08:17 AM用户:N/A计算机:xxxxxxxxxxxxx描述:
为应用程序池"DefaultAppPool"提供服务的进程与World Wide Web Publishing服务发生了致命的通信错误.进程ID为'3788'.数据字段包含错误编号.8007006d
在我发现问题之前,我有几个非常艰难的时间.感谢Tess Ferrandez和她的博客文章,我发现了它.
总是仔细检查asp.net应用程序中的多线程代码.当发生未处理的异常时,应用程序池崩溃,很难找到原因.
在IIS 7中,最佳做法是什么?我应该为每个应用程序创建一个应用程序池,还是应该尽可能多地共享应用程序池?
是否存在与其中一个选项相关的性能缺陷或安全问题?
我有一个应用程序池,它已经分配了很多应用程序,它不会让我重命名.
除了删除和创建新的应用程序池之外,还有为我的应用程序池获取新名称吗?我不想去重新分配其中的每个应用程序.
也许有人可以对这个简单的问题有所了解:
我有一个经过彻底审查的.NET Web应用程序.它会在每个appdomain(进程)启动时加载一个缓存,并且在完成此缓存加载之前无法完全回复请求.
我一直在检查我的应用程序池上的设置,并开始想知道为什么我甚至经常回收(每1,000,000个电话一次或2个小时).
是什么阻止我将自动回收设置为每24小时甚至更长时间?为什么不完全删除该选项,只是如果内存旋转失控的appdomain只是回收?
我正在使用MSDeploy部署一个网站,所以使用类似下面的代码.
"%ProgramFiles%\IIS\Microsoft Web Deploy\msdeploy.exe"
-verb:sync
-source:package=WebAppServer.zip
-dest:Auto
-setParamFile="was_params.xml"
-verbose
> webappserversync.log
Run Code Online (Sandbox Code Playgroud)
无论如何设置应用程序池?我想从命令行执行此操作,而不是将其设置在清单或类似的东西中.
无所谓但这是在IIS7中.
我正在使用IIS 7.0对我的MVC互联网应用程序进行性能测试
有时应用程序池停止,我在浏览器中收到错误消息"服务不可用".然后我必须重新启动池.
为什么池会自动停止,我该如何解决这个问题?
更新 我的日志文件有:"C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll从注册返回错误.数据是错误."
application-pool ×10
iis ×5
iis-7 ×3
asp.net ×2
.net ×1
asp.net-mvc ×1
crash ×1
cryptography ×1
debugging ×1
iis-6 ×1
msdeploy ×1
powershell ×1
python-idle ×1
recycle ×1
web-config ×1
webserver ×1