问题标签 [virtualpathprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
482 浏览

asp.net - 从外部位置提供 Razor 文件的虚拟路径提供程序 - 当 Razor 文件更改时,有什么方法不需要重新启动应用程序池?

我有一个有效的虚拟路径提供程序,为动态生成的剃刀文件提供服务。问题是当这些 razor 文件更改时,需要重新启动应用程序池。我相信通常文件监视器会为磁盘上的传统剃须刀文件处理这个问题。

如何标记或过期通过虚拟文件提供程序提供的剃须刀文件,以便 ASP.NET 无需重新启动应用程序池即可获取我的新剃须刀更改?

0 投票
1 回答
107 浏览

asp.net - 如何使用 VirtualPathProvider 获取查询字符串

我正在使用 VirtualPathProvider,但在函数中

virtualPath 只给出没有查询字符串的 URL 我的问题是如何获取查询字符串。

0 投票
1 回答
659 浏览

.net - mvc5 多租户和自定义视图

我正在尝试做一个多租户应用程序,租户可以在其中获得自己的子域,例如

  • 租户1.mysite.com
  • 租户2.mysite.com

我试过使用自定义routedata,它只在第一页上有效,不知何故在 /login、/register 等其他页面上总是会抛出错误,而且它变得非常神秘。

我放弃并继续使用通配符 DNS 并让我的 HomeController 确定如何根据子域呈现视图

动作过滤器

家庭控制器

所以现在问题来了,当我尝试使用 VirtualPathProvider 从基于子域的数据库加载视图时,但我无法访问 HttpContext,可能是由于生命周期?现在我被卡住了,我也尝试使用RazorEngine加载自定义视图(来自数据库)

我应该怎么做才能在我的 Web 应用程序上支持多租户,该应用程序将首先在数据库中搜索自定义视图并使用数据库中的视图进行渲染,否则如果没有,则回退到默认的 /Home/Index.cshtml?

0 投票
1 回答
106 浏览

asp.net-mvc-4 - 使用 Ninject 自定义 VirtualPathProvider

我在我的 ASP.Net MVC4 项目中使用我的自定义虚拟提供程序。我们将提供者称为 MyVirtualPathProvider。提供者在 OnApplicationStarted 方法中注册,如下所示:

该方法是 Global.asax.cs 的一部分。最重要的是,我有以下内容:

现在,我想使用 [Inject] 属性来注入我的一项服务,就像这样:

在自定义虚拟路径提供程序中,我重写了 GetFile 方法,我想在其中使用注入的 Logger 记录一些内容:

不幸的是,Logger 为空,因此它不起作用。

我试图在自定义虚拟路径提供程序构造函数中将 Logger 作为参数传递,如下所示:

不幸的是,这不是要走的路,因为我有警告:“警告 CS0618:'Ninject.Web.Common.NinjectHttpApplication.Kernel' 已过时:'不要使用 Ninject 作为服务定位器'”

我做错了什么?请指教。

0 投票
0 回答
202 浏览

c# - ASP.NET VirtualPathProvider.DirectoryExists() 有时正确,有时错误

在我的网络应用程序中,以下调用在应用程序启动期间早期返回 true,然后出于任何原因稍后返回 false:

该文件夹存在,同时以下代码始终正确返回 true:

我不知道什么会影响 VirtualPathProvider 改变行为。VirtualPathProvider 在应用程序开始时被覆盖并使用自定义实现但不会覆盖 DirectoryExists() 并且实际调用的方法一直是System.Web.Hosting.MapPathBasedVirtualPathProvider.

我检查了进程监视器,发生的文件系统操作对于正确和错误的结果是相同的。

任何人都知道什么会破坏DirectoryExists()(顺便说一句,同样会发生FileExists())?

0 投票
1 回答
1364 浏览

asp.net - SiteMap.CurrentNode 在使用查询参数时返回 null

我编写了一个自定义 ASP.NET 站点地图提供程序,它运行良好,但如果我将查询参数添加到虚拟路径SiteMap.CurrentNode返回null- 它找不到页面。我在我的所有代码中都设置了断点,它从来没有通过查询参数进入我的虚拟路径提供程序。我在这里想念什么?

0 投票
0 回答
334 浏览

c# - 使用 VirtualPathProvider 时未命中嵌入式 Razor 视图中的断点

cshtml在一个共享库项目中有文件,然后由主网站项目引用。

AVirtualPathProvider在启动时注册,以使其看起来像来自共享库的视图实际存在于主网站中。

问题是断点不再起作用,因为 Visual Studio 在主网站的.pdb文件中查找调试符号,但剃刀文件当然并不存在。

有没有其他人对项目中的虚拟路径和断点有任何运气MVC?我认为将剃刀视图放入共享库中一定是一件常见的事情,人们仍然必须能够调试文件,好吗?

0 投票
1 回答
398 浏览

asp.net - 操纵 VirtualPathProvider 缓存

我正在构建一个依赖于 VirtualPathProvider 的 cms 系统。我需要显示能够释放此缓存的兑现页面。这是构建缓存的代码。我怎样才能访问这个缓存?显示缓存页面列表

0 投票
1 回答
363 浏览

file - Episever MapRequestHandler 返回错误的物理路径

我在 Episerver 7.1 中的 UnifiedDirectory 帮助下上传了一个文件。在 Episerver VPP 文件资源管理器中浏览时,文件完美保存。例如路径可能变成这样:

如果我右键单击文件并选择编辑,我可以查看和编辑文件,这样就可以了。

但是当我在 vpp 文件夹中打开文件时打开文件“editmode”我得到 404。

它试图得到:

它应该更像这样(我们为 VPP 文件夹使用网络 basePath):

注意:如果 EPiServer 试图以这种方式获取文件,它很可能会起作用。

EPiServerFramework.config:

对于文档文件夹,我们使用它(appDataPath 是\\172.40.1.163\vpp\Epi7_new\

0 投票
1 回答
438 浏览

c# - 自定义 VirtualPathProvider 中未调用 GetCacheDependency

我编写了VirtualPathProvider的自定义实现,它允许我从 Azure Blob 存储中提取图像。提供者做它的事,但会调用GetFile每一个对性能不利的请求。

获取文件

因为我知道 blob 的最后修改日期,所以我认为添加一些缓存是个好主意,但我似乎无法得到任何工作。

阅读它似乎我需要覆盖这些方法GetCacheDependencyGetFileHash并且我已经这样做了,如下所示:

GetCacheDependency

获取文件哈希

我也有一个自定义CacheDependency实现。

不幸的是,在请求图像时,这些其他方法都没有被调用。我不确定缺少什么。有任何想法吗?