2008-09-23 14 views
0

J'ai installé un site Web ASP.Net sur un serveur Windows 2008, qui utilise par défaut IIS7. Le site semble fonctionner correctement, mais les post-retours sur mes formulaires ne fonctionnent pas. Après quelques heures de débogage, j'ai réalisé que lorsque j'essayais manuellement de taper le fichier WebResource.axd dans mon navigateur (par exemple je tape http://www.domain.com/WebResource.axd dans la barre d'adresse), j'obtiens une erreur HTTP 403 (Accès refusé). Je ne suis pas sûr de savoir où chercher et mes connaissances en sécurité Windows 2008 sont limitées. Comment puis-je donner accès à ce fichier?WebResource.axd donnant une erreur 403 dans ASP.Net Publie des sauvegardes en utilisant IIS7

+0

Dans mon cas, le problème semble être que le compte de travail asp.net manque de toute autorisation dont cette opération a besoin. Lorsque j'ai déplacé l'assemblage de la corbeille vers le GAC, il a commencé à fonctionner. – xr280xr

Répondre

0

Vérifiez vos journaux IIS - ils doivent fournir un code d'état contenant des informations plus détaillées sur l'erreur. Aussi, quelle est la nature de l'erreur sur la publication?

0

C'est l'erreur que je reçois lorsque vous faites un Postback:

WebForm_PostBackOptions est non défini.

A ma connaissance cette fonction est contenu dans le fichier WebResource.axd, ce qui m'a amené à essayer dans la barre d'adresse, qui comme je sais l'erreur 403 ...

0

Je ne sais pas sur celui-là, mais il peut être lié à la compression http dans IIS. Vérifiez également que le fichier est accessible à l'utilisateur IIS.

2

Accédez à votre dossier de configuration iis. Généralement: c: \ windows \ system32 \ inetsrv \ config et ouvrez le fichier applicationHost.config. Ensuite, dans les fichiers accédez à la section <handlers> et vérifiez que la ligne suivante est présente:

<add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode" /> 

qui est si vous êtes en mode intégré. Vérifiez que le verbe GET est spécifié.

Si vous exécutez en mode pipeline classique que cette ligne doit être présent

<add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> 

Si tout semble être ok que regarder votre web.config dans Handlers et la section Modules et voir si vous avez ajouté <clear /> sur le dessus de chacun. Si c'est le cas, vous devez inclure la section dans votre fichier web.config en respectant l'ordre des gestionnaires/modules spécifiés dans le fichier applicationHosting.config.