- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的 Web 应用程序 (http://www.something.com/social/competition/) 当前正在请求 WebResource.axd 文件,如下所示:
<script src="/WebResource.axd?d=xxx" type="text/javascript"></script>
由于我们在 Netscaler 中使用 urlrewiting 将对“/social”文件夹的所有请求转发到包含此应用程序的单独服务器场,“/”根路径将无法正确解析,因为它将请求资源来自 something.com 应用。
因此我需要更改请求脚本的 url 以明确请求它:
<script src="/social/WebResource.axd?d=xxx" type="text/javascript"></script>
或者使用相对路径请求它:
<script src="WebResource.axd?d=xxx" type="text/javascript"></script>
到目前为止,我已经了解了重写渲染方法、使用控制适配器和其他各种东西,但还没有真正取得进展。请帮忙。
最佳答案
是的,经过大量研究后发现,覆盖这些文件的渲染过程几乎是不可能的。所以唯一的选择就是肮脏、肮脏、可怕的黑客攻击!
protected void Page_Load(object sender, EventArgs e)
{
//Initialises my dirty hack to remove the leading slash from all web reference files.
Response.Filter = new WebResourceResponseFilter(Response.Filter);
}
public class WebResourceResponseFilter : Stream
{
private Stream baseStream;
public WebResourceResponseFilter(Stream responseStream)
{
if (responseStream == null)
throw new ArgumentNullException("ResponseStream");
baseStream = responseStream;
}
public override bool CanRead
{
get { return baseStream.CanRead; }
}
public override bool CanSeek
{
get { return baseStream.CanSeek; }
}
public override bool CanWrite
{
get { return baseStream.CanWrite; }
}
public override void Flush()
{
baseStream.Flush();
}
public override long Length
{
get { return baseStream.Length; }
}
public override long Position
{
get
{
return baseStream.Position;
}
set
{
baseStream.Position = value;
}
}
public override int Read(byte[] buffer, int offset, int count)
{
return baseStream.Read(buffer, offset, count);
}
public override long Seek(long offset, System.IO.SeekOrigin origin)
{
return baseStream.Seek(offset, origin);
}
public override void SetLength(long value)
{
baseStream.SetLength(value);
}
public override void Write(byte[] buffer, int offset, int count)
{
//Get text from response stream.
string originalText = System.Text.Encoding.UTF8.GetString(buffer, offset, count);
//Alter the text.
originalText = originalText.Replace("/WebResource.axd", "WebResource.axd");
//Write the altered text to the response stream.
buffer = System.Text.Encoding.UTF8.GetBytes(originalText);
this.baseStream.Write(buffer, 0, buffer.Length);
}
这会拦截到页面的流并将所有出现的“/WebResource.axd”替换为“WebResource.axd”。因为它是一个相对路径,所以解析得很漂亮!
我想到了另一个解决方案,它需要将 Web 应用程序安装到模仿“/social”关键字重定向的虚拟目录。这会导致 asp.net 更新 HttpRuntime.AppDomainAppVirtualPath 以在页面引用中包含“/social”,从而正确解析。
大呼呼!
关于c# - 更改 WebResource.axd 的请求 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5536536/
我发现对 WebResource.axd 的一个特定 Web 应用程序请求返回一个完全空白的页面。 (将链接复制并粘贴到新的浏览器窗口中会生成一个完全空的响应文档) IIS 日志显示对 WebReso
在正常情况下,两个 .axd 文件以正常速度加载到浏览器,即几百毫秒。通过查看 chrome 中的瀑布图(网络图)或其他调试工具,我可以看到它们与所有其他页面元素一起正常加载。 偶尔会出现一些问题,这
我有一个问题。有时 WebResource 和 ScriptResource 需要很长时间才能加载,超过 1 分钟。我们在一个集群中有多个节点。 请注意,如果您在此问题之前打开了浏览器 session
我在哪里可以了解 WebResources.axd 或 ScriptResources.axd 的实际工作原理? 附加到 .axd 的字符串是什么?这个字符串是变化的,还是不变的?它是特定于页面, s
. 你好, 我们正在使用 C#.net 作为语言构建一个 ASP.NET 应用程序。 在这里,当 IIS 呈现页面以及当我们使用 YSlow 工具分析页面代码时,它会显示许多 WebResource.
我安装了 .NET 4.5 并检查了所有库。一切似乎都很好。但出于某种原因,我没有获得 ScriptResources 的 CDN 文件。 正如您在图片中看到的,它只起作用了一部分。我不久前卸载了 A
我正在从事一个项目,我正在使用 ii7 中的 url rewite 模块实现一个友好的 url 系统。 一切都很好,效果很好。 我唯一的问题是 webresources.axd 和 Telerik.W
在我工作的网站上,页面生成 45 个外部 WebResource.axd 和 ScriptResource.axd 文件,因此浏览器必须请求所有 45 个引用。这是很多引用资料,所以我想知道是否有一种
我已经尝试了一周来减少 Web 应用程序上的请求数量,但我似乎无法合并 .axd 文件。我从某个地方得到了一个建议,该建议在本地(开发框)上有效,但在我们的测试和生产环境中不起作用,因为它们都在 HT
我们有一个带有 2 个 web.config 文件的 Web 应用程序。我在 ASP.NET 页面中使用 telerik:RadScriptManager 控件。该控件需要访问其 ScriptRefe
第一次来这里。我希望这个问题是有道理的: 我们有一个通用控件库,我正在尝试将其中的嵌入资源用于图像、JS 和 CSS。似乎每次部署到 TEST/PROD 时,都有一个 WebResource.axd
任何人都可以确认(最好通过文档链接)在文件同步之前是否完整上传了 MSDeploy 包,或者同步是否发生在 msdeploy.exe 和 msdeploy.axd 之间(仅上传修改过的文件)? 或者,
我正在尝试在 DotNetNuke (6.x) 中开发一种联系表单模块,我想在其中使用RequiredFieldValidator 标记来验证表单。 因为我还使用 PLUpload 来启用文件上传,所
我正在寻找文件 WebResource.axd (查看其源代码)但我找不到它。 它在哪里? 最佳答案 .axd 文件通常作为 HTTP 处理程序实现。它们不作为 ASP.NET 网页存在,而是作为实现
有没有办法使用trace.axd处理程序来跟踪我网站上的单个页面?我正在尝试监视生产中的某些内容,因此我不想跟踪页面的输出,但我也想将输出限制到特定页面。 编辑:我也希望有一个聚合请求的运行记录,就像
我正在托管一个 Web 应用程序,我的一个客户报告说该网站中包含的某些 Telerik javascript 库(但不是全部)无法正常工作。 到目前为止,我能够诊断的是,在该过程的某个时刻,包含 Te
我遇到了一些麻烦,我认为问题出在 Webresource.axd 文件上。我在 .NET 4.5 和 Visual Studio 2012 Web Developer Express 中使用 ASP.
使用 WebResource.axd 时,您会看到在查询字符串中传递了两个参数。通常看起来像这样: WebResource.axd?d=9H3mkymBtDwEocEoKm-S4A2&t=634093
我在 ASP.NET Webform 元素中使用 WebResource 加载 .css 文件时遇到问题。该元素指的是 sharedProject 文件夹。元素中的每个页面都继承自 sharedPro
我在不使用 MVC 的 ASP.NET 网站上使用 URL 重写。该站点一直运行良好,直到今天我开始收到 2 个错误时我才遇到任何问题。根据 FireBug,这两个错误都在 WebResource.a
我是一名优秀的程序员,十分优秀!