问题标签 [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.
asp.net-mvc - 继承自 System.Web.Mvc.ViewStartPage 的虚拟视图
尝试通过 VirtualPathProvider 从文件中检索虚拟视图时遇到问题,此 stackoverflow thread对此进行了描述。
现在我的问题是为什么虚拟视图继承自 System.Web.Mvc.ViewStartPage,以及如何使其继承自 WebViewPage 以便我可以使用
ViewResult View(string viewName);
代替
PartialViewResult PartialView(string viewName);
就像描述的解决方法一样?
asp.net - 缓存通过 VirtualPathProvider 返回的静态资源
我正在使用VirtualPathProvider当前将虚拟路径映射到解决方案外部目录的 。我建立这个主要是为了自我锻炼。这完全等同于在解决方案的目录中有一个软链接或 NTFS 硬链接。
无论如何,我设法使用我的自定义提供程序从该虚拟目录成功加载静态图像。
现在的问题是浏览器不会缓存图像。而且服务器甚至不会考虑返回缓存信息(如 ETag)。
这是我所做的:
GetFile(path).Open()FileStream通过返回File.Open()- 我没有覆盖
GetCacheKey和GetCacheDependencies - 我确实覆盖
GetFileHash了返回 Murmur 哈希(似乎是最快的,甚至比 CRC-32)并测试了它 - 调试时,
GetFileHash从未在我的提供程序中调用
CTRL-F5ing 仅返回以下标头(不引用缓存)
我目前正在 Visual Studio 的调试服务器和配备 Firebug 的 Firefox 中进行调试。
例如,这是我所期望的(http://i.stack.imgur.com/3mn3d.png)
问题很明显:如何让浏览器不重新加载这些静态资源?
bundle - 在虚拟路径提供程序下捆绑的解决方法
我发现在 ASP.NET MVC 4 下,如果它们的虚拟路径由VirtualPathProvider. 我的意思是,如果目录“~/Static/”被映射到一个 VPP,你就不能Include("~/Static/Stylesheets/themes/dark-blue.css"),因为它会简单地默默地失败。
从这里到这里,看起来这是运行时的默认行为,因为它基本上解析文件系统上的虚拟路径,而不是使用 ASP.NET 管道。而且,幸运的是,它将在下一个 MVC 中实现。
无论如何,由于这看起来是一个常见问题,并且由于我要将静态资源存储在项目之外(最终在 Azure 的 CDN 上,但我仍然需要开发和调试),有没有人找到让 ASP.NET Web 的解决方法在他们的虚拟路径中优化搜索资源?
c# - 如何为 EpiServer 页面文件添加有效的 aws S3 虚拟路径提供程序?
我正在运行一个 EpiServer 项目,我想在其中使用 Amazon S3、托管图像等...... pagefiles 目录中将存在很多图像。
我已经下载了 NuGet for Visual Studio 并添加了 AWSSDK 和 Geta.AmazonS3 库,以便能够将 Amazon S3 添加为虚拟路径提供程序。
我在 EpiServer.config 中添加了这一行:
它适用于全局文件。
但是当我尝试为页面文件添加相同的内容时,我收到消息:
“配置为处理页面文件的 VirtualPathProvider 必须返回实现 IPageDirectory 的目录”。
任何人都知道什么可能是错的,或者需要做什么?
通过查看该库,它看起来像是实现了 IPageDirectory(或至少是统一文件系统)。 Geta.AmazonS3 库
c# - 如何从数据库中加载一些视图,从 MVC4 中的文件中加载其他视图
我有一个从文件加载 _Layout 和正常页面视图的 Web 应用程序,我现在尝试使用 VirtualPathProvider 和覆盖的 VirtualFile 从数据库加载部分视图:
我还在 global.asax 中注册了 Provider:
但是,当我注册 RavenDbPathProvider 时,它似乎被用于所有视图查找。
是否可以注册多个 VirtualPathProviders,以便如果在磁盘上找不到视图,则搜索将在数据库中继续?
如果没有,有没有人成功地做过类似的事情?
iis - 如何伪造 IIS 中的目录列表?VirtualPathProvider 适用于文件,但
我们使用 AppFabric 1.1 和 IIS 8.0 来运行我们基于 xamlx 的工作流。为了使静态 xamlx 文件消失,我们使用 Ron Jacobs 完美的示例代码将它们存储在数据库中,并通过VirtualPathProvider.
到目前为止一切顺利,如果有人点击了正确的 uri,则会提供 xamlx 文件。
但是现在 AppFabric 仪表板没有机会收集和登记 xamlx 文件作为服务,因为它们不再对 AppFabric 可见。
目标必须是伪造一个目录列表并从 db 读取所有 xamlx 工作流名称。
我试图通过VirtualPathProvider以这种方式覆盖基于目录的方法来扩展
但是这些方法并没有像我猜测的那样被调用。这是因为 Uri 没有扩展名并且 asp.net 没有被调用。
感谢任何帮助以使这个虚假目录列表发生!
谢谢
c# - Azure 中的 VirtualPathProvider 在发布时不起作用
我创建了一个 VirtualPathProvider 以允许移动基于 Request.Host 的自定义文件夹中的所有资源,以使用一个 Web 应用程序管理多个域。
在我的本地机器上,MVC 应用程序工作,当我发布到 Azure 时,我收到一个不清楚的错误(HTTP 503),我不明白我要检查什么才能获得更多信息。
这里提供者的实现:
virtualpathprovider - mvc4 razor 中是否有任何 VirtualPathProvider 工作示例?
我已经阅读了数十个相关线程,并从示例中创建了我非常简单的虚拟提供程序。
但它不渲染虚拟文件流。只显示计划文本。
这是输出。
有关于此的相关线程,但他们并没有说他们是如何解决它或解决方案不起作用的。我找不到我做错了什么。
- VirtualPathProvider 不解析剃刀标记
- MVC3 自定义 VirtualPathProvider 不呈现 Razor
- 从数据库而不是文件中提取视图
- 使用区域时如何在 MVC3 中指定到共享视图的路由
- ASP.NET MVC 从数据库加载 Razor 视图
- 如何从类库项目中加载视图?
还有更多...
怎么了 ?
这是我的测试代码。(Global.asax,这就是我改变的全部。)
asp.net-mvc-4 - 如何在 IIS6 中使用 EmbeddedResourceVirtualPathPovider
在使用 VS2010 使用 Mvc.JQuery.Datatables Nuget 开发 ASP.NET MVC4 Web 应用程序时,我发现引用的 EmbeddedResourceVirtualPathProvider NuGet 在我的开发盒上运行良好,但在我的生产盒上却惨遭失败。
生产盒是 Windows 2003,安装了 IIS6 和 .NET 4.0。
我在 SO 和谷歌上搜索了很多东西,但是在实施了建议的解决方法之后,它仍然失败:
这就是我所做的。
- 按照https://stackoverflow.com/a/5178993
AppInitialize的建议实施 - 按照http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx的建议为 ASP.NET 实施通配符映射
- 按照https://stackoverflow.com/a/3144841的建议为静态文件实施 IgnoreRoute
但它仍然不能提供所有文件。我得到了嵌入的部分视图,但没有嵌入的 css、js 和 jpg 文件。
我的 web.config 有一个 StaticFileHandler 的条目,如下所示:
我似乎遗漏了一些关键的东西。有什么建议么?
c# - 从虚拟文件中的字符串实现 virtualpathprovide 和显示日期时间
我对 MVC 非常陌生,并试图刺穿虚拟路径提供程序,并在屏幕上显示日期时间。该路径工作正常并被应用程序识别,但它不会显示detetime,而是只显示字符串“时间是:@DateTime.Now”。但如果我直接返回虚拟文件,它将正确显示时间。
以下代码检索虚拟文件:
正如我所提到的,如果我注释掉上面的一些代码,你可以看到它会正确显示时间。
虚拟文件代码:
任何建议将不胜感激。