问题标签 [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.
c# - 混合文件系统上的 imageresizing.net(数据库驱动链接到文件系统上的数据文件)
我偶然发现了 ImageResizing.net 的 ImageResizer,我想知道如何将它与我的网站集成。我们有很多我们认为向公众开放的文件\图像,然后我们还有其他私有的。我们将所有图像都放在网络服务器上的安全文件夹中,无法通过 url 访问,并且我们有一个链接到这些文件的数据库。我们使用 Web 处理程序 (ashx) 将图像传递给用户(网页等),因为关于是否允许用户查看文件的规则比他们所属的角色要复杂得多。例如,某些图像仅对我们发送请求的用户可见(数据库保存此关系信息)。我们不 t 将数据库中的文件/图像存储为 Blob,因为这会大大增加我们的数据库大小(使用 SQLServer Express,因此需要保持在 10GB 限制以下),而且我认为这会影响性能,但我可能是错的。话虽如此,使用 ImageResizer 的最佳方法是什么?
我读了一些关于 IViertualImageProvider 的内容,我想我必须使用这种格式(http://imageresizing.net/docs/extend/virtualimageprovider)编写一个插件。我是否只需在此处输入我的身份验证/授权逻辑以确定图像是否已交付。有没有更好的办法?有人已经为这种情况构建了一个插件吗?
asp.net-mvc - 使用捆绑框架在 javascript 包中包含 MVC 视图或字符串
我正在尝试将几个 javascript 文件捆绑在一起,但我还需要在 js 中包含来自 app.config 的变量。
我的想法是使用控制器返回一个字符串来设置变量,所以去 ~/Javascript/Index 会返回 var foo = "bar"; 这工作正常。
但是当我尝试构建一个包时,静态文件被包含在内,但字符串(或视图)没有显示出来。环顾四周,我发现优化框架仅限于静态文件,直到 1.1 实现了对 VirtualPathProviders 的支持。
我升级到了最新的包,但是我找不到任何关于如何混合静态文件和控制器/视图生成的文件来捆绑的信息。我想我只想使用 MVC 路径提供程序?
我的另一个想法是尝试使用捆绑引擎构建捆绑静态文件的字符串,然后附加我的字符串并将其全部返回给浏览器。但是,我找不到允许我使用捆绑引擎返回捆绑过程结果的方法。
c# - EmbeddedResourceVirtualPathProvider + 使用通配符捆绑
我正在使用(EmbeddedResourceVirtualPathProvider)来允许视图等存在于不同的 DLL 中。除了捆绑之外,我已经将所有这些都很好地工作,我已将 Microsoft.AspNet.Web.Optimization 升级到支持 VPP 但我无法使用通配符的 1.1.2。
例如,这行得通。
这不
我得到一个 ArgumentException “目录不存在”。使用以下 StackTrace
据我所见,它根本没有进入 VPP 代码,完全指定路径显然不是世界末日,但如果可以的话,我想让它工作
c# - MSBuild 在嵌入式资源名称中转义了什么
我注意到 MSBuild 在生成资源名称时会转义以数字开头的文件夹
例如
...\2012.01.01\site.css 在资源名称中变为 ..._2012._01._01.site.css
是否有任何关于 MSBuild 用于确定资源名称的规则的文档?
是否可以进行方法/API 调用来转义名称?
它破坏了我的 VirtualPathProvider,因为我的字典中的键与检索时的路径不匹配。
显然,对此有一个hacky修复,但我更喜欢更强大的东西。
有问题的代码是第 3 方,所以我不想使用这里详述的 LogicalName 方法LogicalName Approach
c# - VirtualPathProvider 问题
实现了一个虚拟路径提供程序,以从新 Web 应用程序的共享项目中动态加载一些文件。在开发/部署和本地 IIS 中一切正常。在部署到生产环境时,我们在尝试查找“虚拟文件”时遇到“无法开始监视文件更改”错误。GetCacheDependency 在我们的 VirtualPathProvider 中被覆盖,但是当我远程调试时,该函数永远不会被命中。有任何想法吗?
编辑:
我在全局 asax 中注册了 VPP。它只是在生产中失败,这让我相信这是一个 iis 设置问题。
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
linq - EmbeddedResourceVirtualPathProvider 和 @Html.TextBoxFor(Linq 表达式)
在我的 .cshtml 文件中,无论我在哪里使用 @Html.TextBoxFor,都会遇到错误
这是一个示例代码:
错误:
有任何想法吗?
asp.net - 使用虚拟路径提供程序而不是 GetWebResourceUrl 检索嵌入式静态资源 (css/img/etc)
我有一个带有 CSS 样式表的 asp.net 4.0 webforms 网站,我已将其嵌入到单独的程序集中。
如果我使用 ClientScript.GetWebResourceUrl 加载 css,它会加载,但是使用 /WebResource.axd?whateverlongstringofstuff
我希望我可以使用虚拟路径提供程序,以便我可以通过链接说 ~/Custom/my.css 来简单地引用它
其中 ~/Custom/* 将通过 VPP 并从嵌入式资源中提供服务。
我这样做的原因是我希望用户能够通过在该位置添加实际的 css 文件来轻松覆盖我的 css,以便它为那个位置提供服务。
但是,无论我尝试什么,我都会在该资源 url 上得到 404,即使在我的自定义 ResourceResolver 中,fileExists 解析为 true(因为它确实在资源程序集中找到了它)。
所以我怀疑这是因为 IIS 被配置为直接提供静态文件(css、jpg、png 等),绕过了我可以添加到管道中的任何内容,解决这个问题的唯一方法是让我的用户更改他们的 web.config或 IIS 设置。
这是真的?因为如果是这样,我将放弃它并返回到 WebResource.axd,但如果可以做到这一点,那就太好了
asp.net - 来自 VirtualPathProvider 的神秘错误消息
我有几个 ASCX 文件分散在一个 ASP.NET 遗留项目中。我想显示我的 ascx 文件,它具有不同的标记,但仍引用旧的代码隐藏类型。
现在我收到一条讨厌的错误消息:
此错误的原因可能是什么?我的 Open 方法也没有被调用。是什么赋予了。
}
asp.net-mvc - VirtualPathProvider 中未调用 MVC GetFile 方法
我创建了一个 VirtualPathProvider 来读取部分视图(来自 Azure 存储),但是当我到达希望 VirtualPathProvider 去寻找视图的页面(在 Azure 存储中)时,它不会调用 GetFile 方法。因此它没有找到该文件。FileExists 方法确实被调用并返回 true。
这是包含我要加载的视图的页面:
这是加载视图的控制器方法:
最后是 VirtualPathProvider :
c# - ASP.NET 捆绑/缩小和嵌入式资源
我正在尝试使用此博客中描述的技术将嵌入式 dll 资源添加到我的包中。
我在VirtualPathProvider
下面创建了自定义。
然后我注册它并设置捆绑包;
我还实现了EmbeddedResourceHttpHandler
文章中描述的自定义,该自定义在将文件作为直接 http 请求请求时有效。
问题:
嵌入的文件没有包含在包中,它们只是被忽略了。调试时FileExists
多次调用该方法,但从不调用 ~/Embedded/files/styles/etc/styles.css
我错过了什么?
次要问题
使用最新版本的 Microsoft ASP.NET Web 优化框架时。按预期工作,VirtualPathProvider
但它阻止IRouteHandler
执行。如果FileExists
方法更改为返回 false,这将允许 RouteHandler 执行,但显然会破坏VirtualPathProvider
.
我假设它没有使用配置的路由,因为它在FileExists
返回 true 时正在寻找物理文件?这是配置问题还是实现问题?