none
Refus d'accès (Access-Control-Allow) à une webmethod d'un site web WebForms RRS feed

  • Question

  • Bonjour,

    J'ai ajouté des webmethod à une application web ASP.NET classique (WebForms, pas MVC), exemple :

    using System.Web.Services;
    ...
    public partial class AjaxSVC : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }
        [WebMethod]   
    public static long getConnection(string login, string pwd)
        {
            long user_id = 0;
            ...
            return user_id;
        }
    }

    Dans mon web.config, j'ai ajouté les headers :

        <httpProtocol>
          <customHeaders>
            <add name="Access-Control-Allow-Origin" value="*" />
            <add name="Access-Control-Allow-Headers" value="Content-Type" />
            <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
          </customHeaders>
        </httpProtocol>
      </system.webServer>

    Mais quand j'appelle getConnection depuis une application angularJs, j'ai un refus d'accès :

    En local cela fonctionne parfaitement, mais si je place l'application web sur une autre machine cela ne fonctionne plus et pourtant l'application web elle est parfaitement accessible.

    Est-ce que quelqu'un aurait une idée ?

    Merci d'avance pour votre aide.

    jeudi 20 octobre 2016 11:43

Réponses

Toutes les réponses

  • Bonjour,
    Est-ce qu'il y a une différence parmi la machine en local et l'autre (par exemple système d'exploitation, configuration, navigateur)?

    Cordialement,
    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.


    vendredi 21 octobre 2016 11:04
    Modérateur
  • Bonjour,

    La machine locale est un W10 Pro et le serveur est un W2k12 R2, mais dans les deux cas le site de base est bien accessible ce sont les webmethod qui ne ne sont pas dès lors que l'appel se fait depuis une machine ayant une adresse ip différente.

    vendredi 21 octobre 2016 13:07
  • Bonjour,

    J'ai fini par trouver la solution : il fallait placer la section httpProtocol dans la section system.webServer et non dans system.web.

    vendredi 28 octobre 2016 07:20