gpt4 book ai didi

ASP.NET:WebResource.axd 调用 404 错误:如何知道哪个程序集/资源丢失或负责?

转载 作者:行者123 更新时间:2023-12-02 05:05:58 25 4
gpt4 key购买 nike

我在 ASP.NET 3.5 (AJAX) Web 应用程序内的特定 WebResource.axd 调用上收到 404 HTTP 状态错误(未找到)。我猜想抛出该错误是因为 bin 文件夹/GAC 中缺少特定引用的程序集。但我不知道是哪个,因为请求资源的页面非常复杂(我使用第三方控件和 ASP.NET Ajax。)

是否可以从查询的加密“d”查询字符串参数中得知,例如:

.../WebResource.axd?d=...

哪个程序集应该创建内容并且可能丢失?

注意:还有其他 WebRequest.axd 调用成功执行。

最佳答案

出现此问题的原因之一是注册的嵌入资源路径不正确或资源不存在。确保资源文件添加为 Embedded Resource .

Asp.net 使用 WebResourceAttribute您必须提供资源的路径。

资源文件需要作为嵌入资源添加到项目中,其路径将是完整的命名空间加上文件名。

因此,您在项目“MyAssembly”中有以下项目资源“my.js”,资源路径将为“MyAssembly.my.js”。

要检查 Web 资源处理程序未找到哪个文件,您可以解密 WebResource.axd url 上提供的哈希代码。请参阅下面的示例了解如何执行此操作。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web;

namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
byte[] encryptedData = HttpServerUtility.UrlTokenDecode("encoded hash value");

Type machineKeySection = typeof(System.Web.Configuration.MachineKeySection);
Type[] paramTypes = new Type[] { typeof(bool), typeof(byte[]), typeof(byte[]), typeof(int), typeof(int) };
MethodInfo encryptOrDecryptData = machineKeySection.GetMethod("EncryptOrDecryptData", BindingFlags.Static | BindingFlags.NonPublic, null, paramTypes, null);

try
{
byte[] decryptedData = (byte[])encryptOrDecryptData.Invoke(null, new object[] { false, encryptedData, null, 0, encryptedData.Length });
string decrypted = System.Text.Encoding.UTF8.GetString(decryptedData);

decryptedLabel.Text = decrypted;
}
catch (TargetInvocationException)
{
decryptedLabel.Text = "Error decrypting data. Are you running your page on the same server and inside the same application as the web resource URL that was generated?";
}
}
}
}

Telerik UI 为 ASP.NET AJAX 团队提供的原始代码示例链接:http://blogs.telerik.com/aspnet-ajax/posts/07-03-27/debugging-asp-net-2-0-web-resources-decrypting-the-url-and-getting-the-resource-name.aspx

这应该返回 aspt.net 认为嵌入资源所在的 URL 路径。

关于ASP.NET:WebResource.axd 调用 404 错误:如何知道哪个程序集/资源丢失或负责?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/435311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com