【发布时间】:2014-11-17 23:18:53
【问题描述】:
我使用 VS.NET 2013 在我的本地机器上开发了一个站点,我让 IIS 指向文件所在的本地驱动器。我的网站要求我登录,所以我将登录并导航到一个页面。如果我在该页面上看到需要修复的样式,我将编辑 css 文件并尝试在浏览器中刷新页面。但是该站点将我踢开并强制我再次登录,这是由于 .css 文件编辑导致 IIS 站点回收造成的。
有没有办法防止它为 css 文件编辑而回收?我注意到我通常可以修改 .aspx 页面而无需回收。该网站是 ASPX 和 MVC 页面的混合体。
更新
我在 VS.NET 中开发,但我不是通过 IIS Express 在我的机器上运行它,而是通过 IIS 本身。
我只是在编辑 .css 文件,最终在保存了几次后,网站就可以回收了。我还尝试在记事本中编辑 .css 文件,这些编辑最终也会回收该网站。
我确实将 ScottGu 的代码 (http://weblogs.asp.net/scottgu/433194) 添加到 Application_End() 中,该代码记录了关闭原因是什么,它报告的内容如下:
_shutDownMessage=Change in App_Offline.htm
HostingEnvironment initiated shutdown
Change in App_Offline.htm
Change in App_Offline.htm
Change in App_Offline.htm
Change in App_Offline.htm
Change in App_Offline.htm
Change in App_Offline.htm
Change in App_Offline.htm
HostingEnvironment caused shutdown
_shutDownStack= at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace()
at System.Web.Hosting.HostingEnvironment.InitiateShutdownInternal()
at System.Web.HttpRuntime.ShutdownAppDomain(String stackTrace)
at System.Web.HttpRuntime.OnAppOfflineFileChange(Object sender, FileChangeEvent e)
at System.Web.DirectoryMonitor.FireNotifications()
at System.Web.Util.WorkItem.CallCallbackWithAssert(WorkItemCallback callback)
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()
我不知道 app_offline.htm 是如何被修改的,因为我没有触摸它。事实上,我没有名为 app_offline.htm 的文件,因为如果有,我将无法看到站点/登录/等。
听起来我需要一个文件观察器并查看谁在触摸它,但我怀疑其他东西正在触摸 app_offline.htm 以触发回收。
【问题讨论】:
标签: asp.net asp.net-mvc iis