Problème avec gestionnaire HTTP dans Sharepoint 2010
-
16-10-2019 - |
La solution
J'ai fini openning Visual Studio Command Prompt. Navigation vers le dossier bin / sortie de mon WebPart et utilisez la commande sn -T sur mon DLL pour obtenir le jeton!
Autres conseils
Dans visual studio, apprendre à aimer les Tokens SharePoint qui sont disponibles. En savoir plus sur eux ici: http://www.andrewconnell.com/blog/archive/2009/12/03/sharepoint-2010-dev-tidbit-use-the-tokens-in-visual.aspx
Je l'ai fait la même chose aujourd'hui avec un fichier séparé et .ashx un fichier .cs et il fonctionne pour moi. Je suis la même erreur, mais alors remarqué que je l'avais fait une erreur de nom de classe. Voici mon code:
*****DemoHandler.cs********
using System;
using System.Web;
using Microsoft.SharePoint;
namespace CustomHTTPModule
{
public class DemoHandler : IHttpHandler
{
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
SPSite siteColl = SPContext.Current.Site;
SPWeb site = SPContext.Current.Web;
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World from " +
site.Title +
" at " +
site.Url);
}
}
}
*********DemoHandler.ashx*******************
<%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Assembly Name="CustomHTTPModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9eec5e2ad94ff809" %>
<%@ WebHandler Language="C#" Class="CustomHTTPModule.DemoHandler" CodeBehind="DemoHandler.cs" %>
J'ai choisi un projet SharePoint vide dans VS 2010 Visitez mon blog ci-dessous pour une image de la structure du projet
Cliquez déployer devrait déployer votre dll CustomHTTPModule à GAC et le .ashx aux _Layouts de votre web app.If vous naviguez pour " http: //webappname/sites/siteName/CustomHttpModule/DemoHandler.ashx " devrait vous donner le texte avec le nom du site J'ai parlé http://blogs.msdn.com/b/kaevans/archive/2010/08 /04/deploying-an-asp-net-httphandler-to-sharepoint-2010.aspx
Méthode rapide et sale? Déposez l'assemblage dans le GAC et obtenir des propriétés sur elle. Une fois que vous avez ce que vous avez besoin, vous pouvez cliquer droit sur le désinstaller.
Mise à jour (15JAN13):
Vous pouvez également ajouter un outil externe pour le studio visuel pour aider à ce (Outils-> Outils externes ...):
Title: Get Assembly Name
Command: powershell.exe
Arguments: -command "[System.Reflection.AssemblyName]::GetAssemblyName(\"$(TargetPath)\").FullName"
Use Output Window: checked
Lorsque votre exécutez la commande, la fenêtre de sortie affichera quelque chose comme ceci:
YourAssemblyName, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 9999d8e777777f66
Vous pouvez faire le même genre de chose pour l'outil de nom fort:
Title: Get Strong Name Token
Command: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\sn.exe
Arguments: -T $(TargetPath)
Use Output Window: checked
Avec la fenêtre de sortie montrant quelque chose comme ceci:
Microsoft (R) .NET Framework Strong Name Utility version 3.5.30729.1 Copyright (c) Microsoft Corporation. Tous droits réservés.
clé publique jeton est 9999d8e777777f66