2016-06-13 6 views
0

Je suis en train d'éditer l'article original parce que j'ai trouvé quelques détails, alors ma question peut être plus précise. Je travaille avec AjaxControlToolkit et Visual Studio 2015 Community Edition. J'ai utilisé NuGet pour installer la boîte à outils et le désinfectant Html qu'ils ont suggéré.AjaxFileUploadHandler.axd à venir 404

Maintenant, j'ai mis en place une page Web ASP.NET contenant le contrôle HtmlEditorExtender, et cela fonctionne bien à l'exception du contrôle AjaxFileUpload intégré. Le téléchargement échoue et j'ai inclus la sortie de la console ci-dessous pour montrer ce que je reçois.

Console Log Messages

Il semble que l'erreur vient du fait que l'application ne peut pas trouver le fichier AjaxFileUploadHandler.axd (c'est ce que la version plus descriptif du message de la console est). J'ai essayé toutes les suggestions que je pouvais trouver sur la modification du fichier web.config (ici sont les sections pertinentes):

<system.webServer> 
<validation validateIntegratedModeConfiguration="false" /> 
<handlers> 
    <add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" /> 
</handlers> 
<security> 
    <requestFiltering> 
    <requestLimits maxAllowedContentLength="4294967295" /> 
    </requestFiltering> 
</security> 

et ...

<system.web> 
<trust level="Full" /> 
<httpHandlers> 
    <add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" /> 
</httpHandlers> 

J'ai désinstallé la boîte à outils, redémarré le serveur, essayé tout ce que je pouvais trouver dessus, et pourtant pas de joie. Je suis à court d'idées ici. Toute aide de quelqu'un, s'il vous plaît?

Répondre

2

Si vous hébergez votre application non à la racine d'un site Web, vous devez spécifier un chemin vers le AjaxFileUploadHandler.axd qui inclut toutes les parties de chemin après la racine du site.

Par exemple, si vous hébergez un site à http://mysite/myapp/mypage.aspx vous devez définir comme ça:

<httpHandlers> 
    <add verb="*" path="myapp/AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" /> 
</httpHandlers> 

Vous pouvez voir cette question pour plus de détails: https://github.com/DevExpress/AjaxControlToolkit/issues/43#issuecomment-203889967

+0

J'ai essayé, et ça me donne toujours la même erreur. J'ai lu cet article (et vos suggestions) hier avant que je publie ceci, en espérant que ça marcherait, mais ce n'est pas le cas. Même après avoir modifié le chemin dans le fichier web.config, la sortie de la console indique qu'elle essaie toujours de rechercher dans la racine localhost. En outre, dans Visual Studio, la sortie de la génération indique qu'elle ne peut pas trouver le schéma de l'élément 'ajaxControlToolkit'. Pourriez-vous fournir un exemple plus complet de ce à quoi devrait ressembler web.config pour que je puisse voir s'il me manque quelque chose? J'ai tout installé via NuGet. –

+0

Il est difficile de deviner ce qui peut mal tourner. Pourriez-vous s'il vous plaît partager votre projet d'exemple avec le problème décrit? –

+0

Y a-t-il une chance que vous puissiez utiliser un exemple complet avec web.config? Je n'ai absolument rien à essayer avec ça. –

1

S'il vous plaît vérifier que l'identité sous laquelle vous exécutez votre code a accès au dossier.

J'ai rencontré la même erreur, la solution fonctionnait correctement sur la machine de développement locale mais quand je l'ai publiée sur le serveur, j'ai eu la même erreur. En regardant les journaux d'événements sur le serveur, je me suis rendu compte que je n'avais pas donné d'autorisations en lecture/écriture à l'identité du serveur. Une fois que j'ai donné ces permissions, ça a bien fonctionné.