4

我有一组在Azure 网站中运行的 asp.net 4.0 网站

  • 计算模式:标准
  • 地点:北欧
  • 容量自动缩放:关闭
  • 实例大小:
  • 实例数:1

响应时间很慢,流量正常,但是我的日志显示很多AppDomain 关闭(一分钟内超过 3 次)。我的网站在 de Application_Start 期间将数据加载到缓存中,以快速响应所有后续请求,但如果 Appdomains 每次都重新启动,则不可能提供可接受的响应时间。

ShutdownReason值很多:

  • 配置更改
  • 托管环境
  • CodeDirChangeOrDirectoryRename
  • BinDirChangeOrDirectoryRename
  • 浏览器目录更改或目录重命名

这没有任何意义,因为我没有更改这些文件夹中的任何文件。

我已经在运行非常快且没有任何意外 AppDomain 重启的免费模式下测试了其中一个站点。

谢谢。

更新:

我已将此代码包含在 Application_Start 中,未检测到文件更改,并且 AppDomain 再次重新启动,并且再次...

var monitorPath = HostingEnvironment.MapPath("~/");
Application.Add("watcher", new FileSystemWatcher(monitorPath));
fsw = (FileSystemWatcher) Application["watcher"];
fsw.EnableRaisingEvents = true;
fsw.IncludeSubdirectories = true;
fsw.Changed += fsw_Changed;
fsw.Created += fsw_Created;
fsw.Deleted += fsw_Deleted;
fsw.Renamed += fsw_Renamed;

2013 年 7 月 15 日更新:

使用 ScottGu 文章http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx中的代码

我已经记录了这个:

_shutDownMessage=Directory rename change notification for 'C:\DWASFiles\Sites\my-sitename\VirtualDirectory0\site\wwwroot'.
File Change Notification Error in wwwroot
HostingEnvironment initiated shutdown
Change Notification for critical directories.
File Change Notification Error in App_GlobalResources
Change Notification for critical directories.
File Change Notification Error in bin
Change Notification for critical directories.
File Change Notification Error in App_Browsers
Change Notification for critical directories.
File Change Notification Error in App_Code
Change Notification for critical directories.
File Change Notification Error in App_WebReferences
CONFIG change
CONFIG change
CONFIG change
CONFIG change
CONFIG change
CONFIG change
CONFIG change
CONFIG change
CONFIG change
CONFIG change
File Change Notification Error in C:\DWASFiles\Sites\my-sitename\VirtualDirectory0\site\wwwroot
CONFIG change
File Change Notification Error in 
HostingEnvironment caused shutdown
File Change Notification Error in 
Change Notification for critical directories.
File Change Notification Error in App_LocalResources
Change Notification for critical directories.
File Change Notification Error in App_LocalResources
CONFIG change

_shutDownStack=   at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
   at System.Environment.get_StackTrace()
   at System.Web.Hosting.HostingEnvironment.InitiateShutdownInternal()
   at System.Web.Hosting.HostingEnvironment.InitiateShutdownWithoutDemand()
   at System.Web.HttpRuntime.ShutdownAppDomain(String stackTrace)
   at System.Web.HttpRuntime.OnCriticalDirectoryChange(Object sender, FileChangeEvent e)
   at System.Web.FileChangesMonitor.OnSubdirChange(Object sender, FileChangeEvent e)
   at System.Web.DirectoryMonitor.FireNotifications()
   at System.Web.Util.WorkItem.CallCallbackWithAssert(WorkItemCallback callback)
   at System.Web.Util.WorkItem.OnQueueUserWorkItemCompletion(Object state)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

2013 年 7 月 19 日更新:

指标Data-In非常高,与请求指标无关,但是当我配置设置 fcnMode=”Disabled” 时,data-In 立即降至正常值,符合流量。

4

1 回答 1

3

使用 asp.net 4.5 中的新设置 fcnMode(似乎在 4.0 中工作)AppDomain 停止重新启动

  <httpRuntime fcnMode="Disabled" />

但是,现在的问题是为什么 azure Websites(至少在我订阅的网站中)中的 FileChangesMonitor 会给出这个 _shutDownMessage:

File Change Notification Error in wwwroot
HostingEnvironment initiated shutdown
Change Notification for critical directories.
File Change Notification Error in App_GlobalResources
Change Notification for critical directories.
File Change Notification Error in bin
Change Notification for critical directories.
File Change Notification Error in App_Browsers
...

更新:

原因是 SMB 中的一个错误只影响了北欧的位置。

于 2013-07-15T01:55:16.090 回答