2

当我添加其中任何一个时...

<%@ OutputCache Duration="600" Location="Any" VaryByParam="*" %>

或者

<%@ OutputCache CacheProfile="CmsArticlesListOrItem" %>

(.. and this into the web.config file...)
<caching>
    <outputCacheSettings>
        <outputCacheProfiles>
            <add name="CmsArticlesListOrItem" duration="600" varyByParam="*" />
         </outputCacheProfiles>
    </outputCacheSettings>

    <sqlCacheDependency ........ ></sqlCacheDependency
</caching>

我的页面/网站因以下错误而崩溃:-

Source: System.Web
----------------------------------------------------------------------------
TargetSite: System.Web.DirectoryMonitor FindDirectoryMonitor(System.String, Boolean, Boolean)
----------------------------------------------------------------------------
Message:System.Web.HttpException: Directory 'C:\Web Sites\My Site Foo - Main Site\Controls\InfoAdvice' does not exist. Failed to start monitoring file changes.
   at System.Web.FileChangesMonitor.FindDirectoryMonitor(String dir, Boolean addIfNotFound, Boolean throwOnError)
   at System.Web.FileChangesMonitor.StartMonitoringPath(String alias, FileChangeEventHandler callback, FileAttributesData& fad)
   at System.Web.Caching.CacheDependency.Init(Boolean isPublic, String[] filenamesArg, String[] cachekeysArg, CacheDependency dependency, DateTime utcStart)
   at System.Web.Caching.CacheDependency..ctor(Int32 dummy, String[] filenames, DateTime utcStart)
   at System.Web.Hosting.MapPathBasedVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
   at System.Web.ResponseDependencyList.CreateCacheDependency(CacheDependencyType dependencyType, CacheDependency dependency)
   at System.Web.HttpResponse.CreateCacheDependencyForResponse(CacheDependency dependencyVary)
   at System.Web.Caching.OutputCacheModule.InsertResponse(HttpResponse response, HttpContext context, String keyRawResponse, HttpCachePolicySettings settings, CachedVary cachedVary, CachedRawResponse memoryRawResponse)
   at System.Web.Caching.OutputCacheModule.OnLeave(Object source, EventArgs eventArgs)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

好的..所以出于某种原因,OutputCache想要一个文件夹/文件在那里?? ? ?

好吧,我已经让这个网站运行了大约 3 年,我很确定这些文件夹在我的生产服务器\Controls\Controls\InfoAdvice不存在。在我的本地主机上,它确实.. 并且包含大量 ascx 控件。

但它们在我的实时服务器上不存在。

那么......这里发生了什么?

有人可以帮忙吗?

哦 :) 在有人建议我创建这两个文件夹甚至在这些文件夹中粘贴一个随机文件.. 并在这些随机文件中包含一些随机文本之前.. 我​​已经这样做了,但它似乎不起作用,仍然:(

请帮忙 !

更新

当我尝试使用 IIS 执行失败的请求跟踪时,我注意到了这一点....

替代文字 http://img136.imageshack.us/img136/1351/notsure.png

4

1 回答 1

0

唔。我不确定这是否是一个可以接受的答案,但我已经弄清楚了。

  1. 该项目是一个 ASP.NET网站(与Web 应用程序MVC1/2类型相反)。
  2. 我必须为控件创建一个文件夹,该文件夹存在于 aspx 页面上。(例如。\controls\infoadvice
  3. 我必须为母版页创建一个文件夹,该页由 \masterpages 页面使用

然后我在这两个新文件夹中添加了一个简单的 txt 文件......其中包含一些虚拟内容。这使得这些文件夹(和虚拟文件)能够在项目为部署“构建”时发布(我正在使用 Web 部署项目 + TFS 构建)。

现在它起作用了。

所以问题是缓存需要检查文件夹。我猜该帐户(NetworkSystem)只是不允许它在不存在的情况下创建文件夹..即使我手动授予了根文件夹的权限(我假设是孩子)。

哦,好吧 - 问题解决了。我不喜欢它..但它已经解决了。

于 2010-03-31T02:12:27.020 回答