我们的QA实验室看到了奇怪的模式.我们有两个ASP.NET应用程序,每个都部署在同一个Windows 2008 SP2 +框中.我们的应用程序池在域帐户中运行,并设置为永不重新循环.两个应用程序使用相同的1 App Pool.
运行几个小时后,新用户浏览我们应用程序中的页面会收到IIS7错误页面,错误为500.21.
如果我们什么都不做,但:
1)IISRESET 2)将文件夹更改为c:\ Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files和"rd"2个应用程序.
然后浏览我们的网络应用程序,一切都很好.
然而几个小时后,500.21错误返回.
令我感到奇怪的是,清除"Temporary ASP.NET Files"文件夹和问题消失之间的关系似乎很明显.我在安装新版本的应用程序时尝试清除"Temporary ASP.NET Files"文件夹,但不是这样.
这种关系对任何人来说都很熟悉吗?是否有一些新的IIS7功能在这里工作?
错误文字:
在应用程序"默认Web站点/国家报"中的服务器错误
Internet信息服务7.0
错误摘要
HTTP错误500.21 -内部服务器错误
处理程序"PageHandlerFactory集成"有一个坏模块"ManagedPipelineHandler"在其模块列表
详细错误信息
模块IIS Web核心
通知ExecuteRequestHandler
处理程序PageHandlerFactory-集成
错误代码0x8007000d
请求的URL http:// localhost:80/PAIS/Admin.aspx
物理路径C:\ 0_Georgia\GA_IS_100142\PortfolioArchiveImageServer\Admin.aspx
登录方法匿名
登录用户匿名
最有可能的原因:
•未安装ASP.NET或未完全安装ASP.NET.
•发生配置印刷错误.
•存在不利的前置条件评估.
您可以尝试的事项:
•如果缺少ManagedPipelineHandler,请确保:
o ManagedEngine所在.
o ManagedPipelineHandler具有正确的前置条件.
•安装ASP.NET.
•确保所有system.webServer/handlers@modules都在system.webServer/modules@name中.
•查看和部分中的前提条件.
链接和更多信息IIS核心无法识别该模块.
查看更多信息»
提前致谢,
霍华德霍夫曼
我打算发一个问题,但提前想出来并决定发布问题和答案 - 或者至少我的意见.
当使用匿名委托作为WaitCallback时,在foreach循环中调用ThreadPool.QueueUserWorkItem时,似乎将相同的一个foreach-value传递到每个线程.
List< Thing > things = MyDb.GetTheThings();
foreach( Thing t in Things)
{
localLogger.DebugFormat( "About to queue thing [{0}].", t.Id );
ThreadPool.QueueUserWorkItem(
delegate()
{
try
{
WorkWithOneThing( t );
}
finally
{
Cleanup();
localLogger.DebugFormat("Thing [{0}] has been queued and run by the delegate.", t.Id );
}
});
}
Run Code Online (Sandbox Code Playgroud)
对于事物中的16个Thing实例的集合,我观察到传递给WorkWithOneThing的每个'Thing'对应于'things'列表中的最后一个项目.
我怀疑这是因为委托正在访问't'外部变量.请注意,我还尝试将Thing作为参数传递给匿名委托,但行为仍然不正确.
当我重新考虑代码以使用命名的WaitCallback方法并将Thing't'传递给方法时,瞧......事物的第一个实例被正确地传递给了WorkWithOneThing.
我想是平行学的一课.我还想象Parallel.For系列解决了这个问题,但是这个库不是我们的选择.
希望这能节省一些时间.
霍华德霍夫曼
我们有一个 Azure AppService,托管一个经典的 ASP.NET 应用程序。我们注意到D:\home\LogFilesAppService 上的文件夹有数百个日志文件,命名为SnapshotUploader64_ABCDEF.logwhereABCDEF是 6 个字母数字字符。其中许多文件接近 100KB。
这些文件是什么?为什么有这么多,可能会填满我们的日志空间。
每个日志文件似乎都是 AppInsights PDP 检查、小型转储写入和快照上传的痕迹。可以关闭此跟踪吗?
当我们浏览 Kudu SCM DebugConsole 页面时,我们会在 Kudu 控制台中看到一长串错误消息——
There are xxx items in this directory, but maxViewItems is set to 299. You can increase maxViewItems by setting it to a larger value in localStorage.
如果它们无法关闭,我们可以将它们放在其他地方,例如LogFiles\ApplicationInsights子文件夹下方吗?
在Powershell控制台中,在Windows 10(10.0.17134.0)上,F7不会像对CMD控制台那样弹出命令历史记录。有没有解决的办法?