Question

Je développe une partie web visuelle pour Sharepoint 2010. Ce webpart a besoin d'obtenir des données via AJAX. Je suis donc allé pour le gestionnaire HTTP + solution jQuery posté

Notes: La page d'erreur actuelle que vous voyez peut être remplacé par un page d'erreur personnalisée en modifiant l'attribut « defaultRedirect » du balise de configuration de l'application pour pointer vers une coutume URL de la page d'erreur.

J'ai vérifié Observateur d'événements du serveur pour voir les détails de l'erreur. C'est ce qui est à l'origine:

Event code: 3006 
Event message: A parser error has occurred. 
Event time: 8/4/2011 2:08:17 PM 
Event time (UTC): 8/4/2011 6:08:17 PM 
Event ID: 71c80726be98453ab77a7c1d474cbf7c 
Event sequence: 5 
Event occurrence: 2 
Event detail code: 0 

Process information: 
    Process ID: 6200 
    Process name: w3wp.exe 
    Account name: NT AUTHORITY\NETWORK SERVICE 

Exception information: 
    Exception type: HttpParseException 
    Exception message: Could not create type 'MyNamespace.MyHandler'. 

Request information: 
    Request URL: http://mysharepointurl/_layouts/MyNamespace/MyHandler.ashx 
    Request path: /_layouts/MyNamespace/MyHandler.ashx 
    User host address: xxx.xxx.xxx.xxx
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: NT AUTHORITY\NETWORK SERVICE 

Thread information: 
    Thread ID: 11 
    Thread account name: NT AUTHORITY\NETWORK SERVICE 
    Is impersonating: True 
    Stack trace:    at System.Web.UI.SimpleWebHandlerParser.GetType(String typeName)
   at System.Web.UI.SimpleWebHandlerParser.GetTypeToCache(Assembly builtAssembly)
   at System.Web.Compilation.SimpleHandlerBuildProvider.GetGeneratedType(CompilerResults results)
   at System.Web.Compilation.BuildProvider.CreateBuildResult(CompilerResults results)
   at System.Web.Compilation.BuildProvider.GetBuildResult(CompilerResults results)
   at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
   at System.Web.UI.SimpleHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
   at System.Web.UI.SimpleHandlerFactory.GetHandler(HttpContext context, String requestType, String virtualPath, String path)
   at System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

est MyHandler.ashx

<%@ WebHandler Language="C#" Class="MyNamespace.MyHandler" CodeBehind="MyHandler.cs" %>

Comme vous pouvez le voir je manque la directive Assembly. Mais je ne sais pas quoi mettre. Où puis-je obtenir le KeyToke, nom, etc?

Était-ce utile?

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top