C# VirtualPathProvider问题
实现了一个虚拟路径提供程序,以便在新的web应用程序中动态加载共享项目中的一些文件。在dev/deployed和本地IIS中,一切都可以正常工作。在部署到生产环境时,我们在尝试查找“虚拟文件”时遇到“无法开始监视文件更改”错误。GetCacheDependency在我们的VirtualPathProvider中被重写,但当我远程调试时,该函数从未被命中。有什么想法吗 编辑: 我在全球asax中注册VPP。它只是在生产中失败了,这让我相信这是一个iis设置问题 在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来识别 堆栈跟踪:C# VirtualPathProvider问题,c#,asp.net,virtualpathprovider,C#,Asp.net,Virtualpathprovider,实现了一个虚拟路径提供程序,以便在新的web应用程序中动态加载共享项目中的一些文件。在dev/deployed和本地IIS中,一切都可以正常工作。在部署到生产环境时,我们在尝试查找“虚拟文件”时遇到“无法开始监视文件更改”错误。GetCacheDependency在我们的VirtualPathProvider中被重写,但当我远程调试时,该函数从未被命中。有什么想法吗 编辑: 我在全球asax中注册VPP。它只是在生产中失败了,这让我相信这是一个iis设置问题 在执行当前web请求期间生成了未经处
我认为您需要发布一些方法的内容。我的VirtualPathProvider的工作方式似乎相同,唯一的区别是我使用
返回新的System.Web.Caching.CacheDependency(HostingEnvironment.MapPath(“~/”+theDependencyFileName),utcStart)代码>。你可以试试看,即使我不知道为什么它会有不同,如果你的baseDirectory是正确的。。。另外,我使用base.GetCacheDependency
而不是Previous.GetCacheDependency
。这可能就是为什么它会出现在web服务上。我已经尝试了Previous和Base,但仍然看到相同的问题。我试试你的其他建议,让你知道
public override System.Web.Caching.CacheDependency GetCacheDependency(string virtualPath, System.Collections.IEnumerable virtualPathDependencies, DateTime utcStart)
{
if (CheckVirtual(virtualPath))
{
string realName = CustomVirtualPathProvider.CleansePath(virtualPath);
return new System.Web.Caching.CacheDependency(baseDirectory + realName);
}
return Previous.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart);
}