IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Sharepoint .NET Discussion :

[Provider-Hosted App] An error occurred while processing your request.


Sujet :

Développement Sharepoint .NET

  1. #1
    Membre expert
    Avatar de MarieKisSlaJoue
    Homme Profil pro
    Ingénieur Cloud
    Inscrit en
    Mai 2012
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Ingénieur Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 145
    Points : 3 654
    Points
    3 654
    Billets dans le blog
    20
    Par défaut [Provider-Hosted App] An error occurred while processing your request.
    Bonjour,

    Alors je voudrais faire une Provider-Hosted-App,

    j'ai donc dans ma solution un projet SharePoint App et une projet Web From.
    Quand je publie mon projet Web Form sur Azure à l'adresse suivante : https://sharepoint*****.azurewebsite...s/Default.aspx j'obtiens l'erreur suivante :

    An error occurred while processing your request.

    Cette erreur viens de cette fonction qui se trouve dans le default.aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    protected void Page_PreInit(object sender, EventArgs e)
            {
                Uri redirectUrl;
                switch (SharePointContextProvider.CheckRedirectionStatus(Context, out redirectUrl))
                {
                    case RedirectionStatus.Ok:
                        return;
                    case RedirectionStatus.ShouldRedirect:
                        Response.Redirect(redirectUrl.AbsoluteUri, endResponse: true);
                        break;
                    case RedirectionStatus.CanNotRedirect:
                        Response.Write("An error occurred while processing your request.");
                        Response.End();
                        break;
                }
            }
    Je n'ai jamais été très bon en développement Web et encore moins en .Net, mais je comprend que la redirection ne marche pas.
    Sur internet il précise de mettre dans le AppManifest.xml cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        <StartPage>https://sharepointchatbot.azurewebsites.net/pages/Default.aspx?{StandardTokens}</StartPage>
    t de vérifier qu'elle est bien en HTTPS. Bon alors déjà elle y est, mais je ne vois pas comment le AppManifest qui est dans mon projet SharePoint App pourrai régler un soucie qui se produit visiblement sur le projet Webform. En tous cas ça ne marche pas.

    En revanche si dans la page Default.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SharePointAppHelloWorldWeb.Default" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Hello</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
                Hello World
                <asp:Label ID="Label1" runat="server" Text="Who?"></asp:Label>
        </div>
     
        </form>
    </body>
    </html>
    je retire la ligne Inherits="SharePointAppHelloWorldWeb.Default"

    ça fonctionne. En tous cas ma page s'affiche.

    Cependant ça ne fait pas exactement ce que je veux, car dans ma page Default.aspx

    j'ai ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    protected void Page_Load(object sender, EventArgs e)
            {
                // The following code gets the client context and Title property by using TokenHelper.
                // To access other properties, the app may need to request permissions on the host web.
                var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);
     
                using (var clientContext = spContext.CreateUserClientContextForSPHost())
                {
                    clientContext.Load(clientContext.Web, web => web.Title);
                    clientContext.ExecuteQuery();
                    Response.Write(clientContext.Web.Title);
                    Microsoft.SharePoint.Client.User spUser = clientContext.Web.CurrentUser;
                    clientContext.Load(spUser, user => user.Title);
                    clientContext.ExecuteQuery();
                    Label1.Text = spUser.Title;
                }
            }
    Et la je m'attend à ce qu'au chargement de la page mon label change avec le nom de l'utilisateur connecter qui lance l'app. Ca ne semble pas être le cas.

    Alors pourquoi j'ai une erreur "An error occurred while processing your request." causé apparemment par "Inherits="SharePointAppHelloWorldWeb.Default"" ?
    Et pourquoi mon page_load ne semble pas fonctionner ?

    Merci de votre aide.

    Pour information. J'ai suivis c'est 2 article pour faire ma première app
    - https://blogs.msdn.microsoft.com/ste...-azure-part-1/
    - https://blogs.msdn.microsoft.com/ste...epoint-part-2/
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 486
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 486
    Points : 2 082
    Points
    2 082
    Par défaut
    Bonjour,

    Tout d'abord, de quel SharePoint s'agit-il ?

    La fonction Page_PreInit permet justement de garantir a votre appli que le contexte SharePoint existe.
    Considerez ce bout de code comme un prerequis a toute execution ulterieure de l'appli, notamment la partie qui appelle l'API SharePoint.

    En retirant la propriete Inherit, la page aspx ne se comporte plus comme attendu car votre code behind custom n'est pas execute.
    De plus, si le contexte SharePoint ne peut etre initialise, lorsque vous appelez SharePointContextProvider.Current dans votre Page_Load, ca va planter.
    Tout depend donc de realiser un passage sans erreur dans le PreInit.

    Avant de penser a publier l'appli quelquepart, est-ce que tout marche lorsque vous executez la webapp (debuggez) en local en utilisant un site SharePoint pour developpeurs ?

  3. #3
    Membre expert
    Avatar de MarieKisSlaJoue
    Homme Profil pro
    Ingénieur Cloud
    Inscrit en
    Mai 2012
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Ingénieur Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 145
    Points : 3 654
    Points
    3 654
    Billets dans le blog
    20
    Par défaut
    Hello,

    Mince je pensais l'avoir dit.

    Il s'agit d'un SP 2013 OnPrem. Le site web lui est hébergé sur un App Service Azure

    Merci pour l'explication, je pense en effet que le contexte SharePoint n'arrive pas à être charger, mais je ne comprend pas pourquoi. Même sans publier l'app, l'erreur ce produit en local.

    Edit : J'ai aussi essayer avec du SharePoint Online, refait donc un projet, etc. Même erreur.

    Edit2 : Après mainte et mainte essaye à essayer de refaire tous proprement sur SP Online j'ai réussi à faire fonctionner la page. Donc on va dire que le problème est quasiment réglé.
    Seulement si je fais une Provider-Hosted-App (enfin Addin du coup) avec SP Online, elle ne sera pas utilisable sur du Onpremise non ?

    Je n'arrive pas bien à comprendre la différence entre les 2 (Hosted App sur Online ou sur Onprem)

    Je pense que ma première erreur venez de mon trsut server qui à du être mal configurer et qui à causer ce soucie.
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 486
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 486
    Points : 2 082
    Points
    2 082
    Par défaut
    Je vois que vous avez essaye plein de choses...
    Vous avez mis le doigt sur deux problemes.

    D'abord, un add-in cree depuis le template de projet dans Visual Studio pour SPOnline ne peux etre installe sur SPS 2013 par defaut.
    Il y a un numero de version a changer dans le AppManifest.xml. Dans votre cas ce sera 15.0.0.0 en minversion pour pouvoir supporter SP2013.


    De plus, dans l'architecture que vous avec decrite (WebApp:Azure, SPS:Onpremise) il y aura un probleme de connectivite reseau.
    Le fait que votre SPS2013 soit sur le reseau interne et que le serveur webapp soit sur le reseau public est un probleme d'importance.
    J'imagine qu'il n'y a pas de VPN reliant la webapp sur Azure a votre reseau interne?

    Cela peut se resoudre soit en utilisant un VPN, soit en parametrant votre DNS et le routeur reseau de votre entreprise afin d'exposer votre SharePoint au reseau public.


    Si vous developpez un add-in onpremise a usage interne, vous gagneriez peut etre a partir sur un add-in High-trust.
    https://msdn.microsoft.com/fr-fr/lib.../fp179901.aspx
    Sinon vous serez oblige de vous connecter a Azure AD pour valider l'authentification de l'add-in (Low-Trust par defaut).
    https://blogs.msdn.microsoft.com/bes...s-deployments/

    Dans les deux cas, validez que votre serveur SP2013 soit bien parametre pour l'utilisation d'add-ins et surtout pour quelle configuration (High-Trust ou Low-Trust).
    https://technet.microsoft.com/fr-fr/.../fp161236.aspx

    Si par hasard vous etes parti sur un template en Low-Trust alors que la ferme locale SharePoint n'est pas parametree pour, vous aurez beau essayer de debugger en local, l'authentification de l'add-in ne passera pas.

  5. #5
    Membre expert
    Avatar de MarieKisSlaJoue
    Homme Profil pro
    Ingénieur Cloud
    Inscrit en
    Mai 2012
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Ingénieur Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 145
    Points : 3 654
    Points
    3 654
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par nonoxp Voir le message
    Je vois que vous avez essaye plein de choses...
    Vous avez mis le doigt sur deux problemes.

    D'abord, un add-in cree depuis le template de projet dans Visual Studio pour SPOnline ne peux etre installe sur SPS 2013 par defaut.
    Il y a un numero de version a changer dans le AppManifest.xml. Dans votre cas ce sera 15.0.0.0 en minversion pour pouvoir supporter SP2013.
    De ce que tu me dit je comprend que je peux exécuter une Addin prévu pour SharePoint Online sur du SharePoint 2013 qui serai OnPremise ?
    Si j'ai bien compris j'ai du mal à voir comment ça ne poserai pas des problèmes de certifications ?
    Ou alors on parle juste du Template de projet qui doit être adapter et pas de l'application une fois build, ce qui serai plus logiq

    Citation Envoyé par nonoxp Voir le message
    De plus, dans l'architecture que vous avec decrite (WebApp:Azure, SPS:Onpremise) il y aura un probleme de connectivite reseau.
    Le fait que votre SPS2013 soit sur le reseau interne et que le serveur webapp soit sur le reseau public est un probleme d'importance.
    J'imagine qu'il n'y a pas de VPN reliant la webapp sur Azure a votre reseau interne?

    Cela peut se resoudre soit en utilisant un VPN, soit en parametrant votre DNS et le routeur reseau de votre entreprise afin d'exposer votre SharePoint au reseau public.
    En effet j'ai un peu mélanger les briques, j'avais commencer à vouloir utiliser le IIS local, mais je n'ai pas trop l'habitude de ce genre de serveur et j'ai vite préféré passer sur quelque chose de plus simple. Mais visiblement c'était une mauvaise idée. Car en effet il n'y à pas de VPN et je n'ai pas paramétré mon DNS.

    Citation Envoyé par nonoxp Voir le message
    Si vous developpez un add-in onpremise a usage interne, vous gagneriez peut etre a partir sur un add-in High-trust.
    https://msdn.microsoft.com/fr-fr/lib.../fp179901.aspx
    Sinon vous serez oblige de vous connecter a Azure AD pour valider l'authentification de l'add-in (Low-Trust par defaut).
    https://blogs.msdn.microsoft.com/bes...s-deployments/
    Intéressant je vais lire ça voir la différence entre les deux et ce qui me conviendrai le mieux.

    Citation Envoyé par nonoxp Voir le message
    Dans les deux cas, validez que votre serveur SP2013 soit bien parametre pour l'utilisation d'add-ins et surtout pour quelle configuration (High-Trust ou Low-Trust).
    https://technet.microsoft.com/fr-fr/.../fp161236.aspx

    Si par hasard vous etes parti sur un template en Low-Trust alors que la ferme locale SharePoint n'est pas parametree pour, vous aurez beau essayer de debugger en local, l'authentification de l'add-in ne passera pas.
    Yep, c'est la première chose que j'ai fait en effet avant de commencer à vouloir crée. Merci des éclaircissements.
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 486
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 486
    Points : 2 082
    Points
    2 082
    Par défaut
    Citation Envoyé par MarieKisSlaJoue Voir le message
    De ce que tu me dit je comprend que je peux exécuter une Addin prévu pour SharePoint Online sur du SharePoint 2013 qui serai OnPremise ?
    Si j'ai bien compris j'ai du mal à voir comment ça ne poserai pas des problèmes de certifications ?
    Ou alors on parle juste du Template de projet qui doit être adapter et pas de l'application une fois build, ce qui serai plus logiq
    Pas besoin d'adapter le Template, la difference ne tient a pas grand chose entre un addin SPO et SP2013 donc il est possible de SP2013-iser un addin cree pour SPO qui utilise uniquement les fonctions communes.
    De memoire, le template de projet a deux impacts principaux a la creation:
    - La version minimale SP inscrite dans AppManifest.xml
    - La version du package NuGet lie (librairies CSOM) dans la partie WebApp

    Il suffira de supprimer la reference aux librairies CSOM de SPO qui sont trop "en avance" (version 16.1.*.*) par rapport a SP2013 et les remplacer par les librairies CSOM de SP2013 (version dll 15.*.*.*).
    Un package NuGet specifique existe pour cela il me semble, mais il est egalement possible de lier les dlls directement au projet WebApp.

    Apres reflexion, il est possible que votre appli ne soit pas tres grosse niveau code source ou parametrage du package.
    Dans ce cas la il est peut etre plus rapide de creer un nouveau projet dans VS en ciblant cette fois un environnement OnPremise (il faudra aussi choisir Low-Trust ou High-Trust), puis migrer les differents modules ou sources dans ce nouveau projet.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/10/2016, 16h17
  2. [Débutant] Sorry an error occured while processing your request
    Par mine87 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2012, 15h17
  3. Réponses: 3
    Dernier message: 09/06/2011, 15h30
  4. Réponses: 2
    Dernier message: 09/07/2009, 21h42
  5. Réponses: 3
    Dernier message: 16/01/2006, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo