ASP.NET: WebResource.axd называют 404 ошибки: как знать, какой блок/ресурс отсутствует или ответственный?

Если вы хотите использовать механизмы кэширования, например Redis или Memcached , возможно, выбор DALMP может быть выбран. Он использует чистый MySQLi . Проверьте это: Уровень абстракции базы данных DALMP для MySQL с использованием PHP.

Кроме того, вы можете «подготовить» свои аргументы перед подготовкой своего запроса, чтобы вы могли создавать динамические запросы и в конце имеют полностью подготовленный запрос. Уровень абстракции базы данных DALMP для MySQL с использованием PHP.

24
задан Kiquenet 4 November 2015 в 11:38
поделиться

3 ответа

Одна из причин этой проблемы - то, что зарегистрированный встроенный путь ресурса является неправильным, или ресурс не там. Удостоверьтесь, что файл ресурсов добавляется как Встроенный Ресурс .

Asp.net использует WebResourceAttribute, который необходимо дать пути к ресурсу.

файл ресурсов должен быть добавлен как Встроенный Ресурс к проекту, и путь к нему был бы полным пространством имен плюс имя файла.

, Таким образом, у Вас есть следующий ресурс проекта "my.js" в проекте "MyAssembly", путь ресурса был бы "MyAssembly.my.js".

Для проверки, что не находит файл обработчик веб-ресурсов, можно дешифровать хэш-код, обеспеченный на 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 для Ссылки Команды Ajax ASP.NET: 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

Это должно возвратить путь URL, тот aspt.net полагает, что встроенный ресурс в.

32
ответ дан dmportella 28 November 2019 в 22:59
поделиться

Ваш проект пропускает какие-либо ссылки?

там какой-либо ссылочный набор к CopyLocal=False (распространенный с судьями Infragistics или GAC'ed), которые не делают это месту назначения?

утилита А как отражатель или зависимость Уокер скажет Вам, если Ваш основной блок пропустит какие-либо зависимости, которые не сразу очевидны.

Делает , обработчик Application_Error в global.asax имеет выгоду, которая производит какую-либо информацию об ошибке (FileNotFoundExceptions)?

Вы устанавливали пользовательские ошибки к 'удаленному только' и просматривали сайт от локальной машины?

2
ответ дан StingyJack 28 November 2019 в 22:59
поделиться

Я просто часами занимался подобной проблемой. Благодаря замечательной статье, указанной Диадистисом, я смог расшифровать URL-адрес WebResource и узнать, что мой WebResource был переведен в неправильный указатель сборки, который можно узнать по мусору перед именем вашего ресурса. После долгой борьбы я обнаружил, что это произошло потому, что я использовал Page.ClientScript.GetWebResourceUrl в классе, производном от другого класса, который находился вне сборки, в которой находился мой ресурс. Смущало то, что мой класс БЫЛ в той же сборке, хотя класс, производный от НЕ был. Параметр this.GetType (), который указывается во многих статьях, является обязательным, но в моей ситуации он оказался вовсе не обязательным. Собственно, его нужно было заменить на typeof (), и это сработало! Надеюсь, это избавит других от такой же головной боли, как у меня от этого педераста.

Параметр GetType (), который указывается во многих статьях, является обязательным, но в моей ситуации он оказался вовсе не обязательным. Собственно, его нужно было заменить на typeof (), и это сработало! Надеюсь, это избавит других от такой же головной боли, как у меня от этого педераста.

Параметр GetType (), который указывается во многих статьях, является обязательным, но в моей ситуации он оказался вовсе не обязательным. Собственно, его нужно было заменить на typeof (), и это сработало! Надеюсь, это может помешать другим получить такую ​​же головную боль, как у меня от этого педераста.

11
ответ дан 28 November 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: