Je reçois les fichiers css pour réduire et compresser de QueryString["path"]
tout fonctionne correctement pour mes propres fichiers CSS comme main.css. Mais quand j'essaye d'accéder aux dossiers de Webresource je reçois une erreur 500. Le paramètre qui vient après le webresource.axd est sensible à la casse et je le reçois de QueryString["path"]
en minuscules.Comment obtenir WebResource.axd querystring dans le bon cas?
C'est ce que je reçois de QueryString["path"]
:
http://localhost/test/webresource.axd?d=-phgrn6r6zgehvbi697-bxvkl_gidnplxpdeukz5kncgr9hvnfvttpgykwyw05cda-nymtz9od_bbww3ynzxha2&t=633789305460522066
Le lien ci-dessus génère une erreur: CryptographicException: Rembourrage est invalide et ne peut pas être supprimé.
C'est ce que l'apparence de lien correct comme:
http://localhost/test/WebResource.axd?d=-pHGRn6r6ZGehvBI697-BxVKl_GIdNPlxPdEUKZ5KNcGR9hvnfVtTpgyKwYw05cDa-NymTz9OD_bBwW3ynZXhA2&t=633789305460522066
La seule différence est dans le cas. CryptographicException semble être commun, mais même la configuration de machineKey n'a pas résolu le problème. Un indice sur comment puis-je obtenir le webresource.axd dans le cas d'origine?
EDIT
codea été demandé:
public void ProcessRequest(HttpContext context) {
Control c = new Control();
string root = context.Request.Url.GetLeftPart(UriPartial.Authority);
string path = context.Request.QueryString["path"];
string content = string.Empty;
if (!string.IsNullOrEmpty(path)) {
if (context.Cache[path] == null) {
List<string> dependencies = new List<string>();
string[] styles = path.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
foreach (string style in styles) {
content += RetrieveStyle(root + c.ResolveUrl(style)) + Environment.NewLine;
dependencies.Add(context.Server.MapPath(style));
}
content = StripWhitespace(content);
context.Cache.Insert(path, content, new CacheDependency(dependencies.ToArray()), Cache.NoAbsoluteExpiration, new TimeSpan(DAYS_IN_CACHE, 0, 0, 0));
}
}
}
Il plante dans RetreiveStyle quand je l'appelle:
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
Pouvez-vous fournir le code que vous utilisez pour obtenir la ressource Web en premier lieu? –