Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 14933|Répondre: 1

[ASP.NET] asp.net Le fichier du répertoire Get Site est vide

[Copié le lien]
Publié sur 05/01/2018 16:18:49 | | | |
Tout d’abord, collez le code pour obtenir le fichier du répertoire du site web, comme suit :



Après avoir exécuté cette phrase, une exception sera lancée indiquant que l’objet est vide, comme montré dans la figure ci-dessous :



Pourquoi est-ce que j’ai nul ?

Parce que le thread exécutant ce code n’est pas le thread actuel qui gère la requête en cours

Pourquoi n’est-il pas nul quand on l’obtient ailleurs ?

Cela s’explique par le fait que ASP.NET programme a déjà défini l’objet HttpContext sur la propriété System.Runtime.Remoting.Messaging.CallContext.HostContext mentionnée plus tôt avant d’appeler votre code.

HttpApplication dispose d’une méthode interne OnThreadEnter(), ASP. .NET appelle cette méthode pour commuter le HttpContext avant d’appeler du code externe, par exemple chaque fois que le gestionnaire d’événements du pipeline est exécuté, ou lorsque le contexte de synchronisation (AspNetSynchronizationContext) exécute un callback. Après avoir changé la propriété CallContext.HostContext du thread, notre code peut accéder à la référence HttpContext. Note : La référence au HttpContext est en fait enregistrée dans l’objet HttpApplication.



Comment obtenir le chemin exact du fichier dans ce cas ?

Nous pouvons accéder à System.Web.HttpRuntime.AppAppDomainAppPath pour obtenir le chemin racine du programme, puis on épisse les chemins relatifs du fichier





Précédent:Explication complète de la vulnérabilité sous-jacente des processeurs Intel : aucun téléphone mobile ou ordinateur au monde n’est épargné
Prochain:Résumé de la méthodologie de création d’instances autofac
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com