Domanda

Ho progetto di controlli utente (UI) e sto usando AJAX Toolkit Extension con loro. La dll di AJAX Toolkit Extension viene fatto riferimento nel progetto. Il progetto sta compilando con successo.

Un altro progetto in stessa soluzione che è progetto WSPBuilder (Deploy). Quando si crea UI progetto tutti i controlli saranno copia di distribuire directory del progetto 12\TEMPLATE\CONTROLTEMPLATES e un dll di progetto di interfaccia utente anche copiato nella cartella GAC. (Per la copia, sto usando gli eventi post-generazione)

Poi, costruire progetto Deploy utilizzando WSPBuilder creare e distribuire. Ricevo un messaggio di errore:

An error occurred during the processing of . Unknown server tag 'asp:ScriptManager'.

Per favore, non dire che ho modificare manualmente il file web.config per aggiungere e contrassegnare l'estensione ajax come controllo di sicurezza. Non ho intenzione di farlo.

Qualsiasi soluzione migliore?

P.S: sto usando WSPBuilder, STSDEV e VSeWSS.

Modifica

Grazie a Chris. Il problema era:

In questo caso, penso che sia altro elementi in web.config cui si è mancante - le dichiarazioni AJAX. Tra le altre cose, è necessario il segue nel web.config in modo da Net sa come trovare lo ScriptManager classe:

<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

Ma questo problema va un po 'strano al mio fianco. Ho dovuto enableSessionState insieme a true di tag pages sotto system.web e rimuovere il commento dalla seguente:

<add name=”Session” type=”System.Web.SessionState.SessionStateModule” />

ho pensato di mettere AjaxExtension.dll in GAC possono risolvere il problema. Sono stato evitando di scrivere una funzione per modificare web.config. Posso fare anche questo in manifest.xml?

Per cortesia, indicate!

È stato utile?

Soluzione

L'errore che non appare riesci a vedere di essere in relazione alla voce SafeControls. Se così fosse, si vedrebbe un messaggio che dice "non possono essere visualizzati o importati Impossibile aggiungere web part selezionata (s). Una web part o controllo di modulo web in questa pagina. Il tipo non è registrato come sicuro".

In questo caso, credo che sia altri elementi in web.config che vi manca - le dichiarazioni AJAX. Tra le altre cose , è necessario quanto segue nel web.config in modo da Net sa come trovare la classe ScriptManager:

<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

Hai un paio di opzioni:

I dettagli completi del web.config cambiamenti richiesti sono dettagliato qui di Mike Ammerlaan blog .

Qualunque strada si prende, verificare la versione di AJAX si sta utilizzando contro la guida / campioni che si usa.

Altri suggerimenti

Un commento dal sito WSPBuilder.

Bel lavoro! L'aggiunta di DLL di terze parti ha funzionato grande quando ho schierato AJAX e l'AJAX Control Toolkit. Ho creato una funzione per fare tutte le modifiche web.config ed ho usato la cartella GAC ??\ riferimento per includere il Control Toolkit DLL. Ha lavorato molto anche con più server della farm. Questo è stato un risparmiatore di vita!

Quindi includere la dll nel progetto WSPBuilder per ottenere comprendeva, quindi creare una funzione per modificare web.config. Vedere questo post per informazioni su come modificare web.config con una caratteristica.

Per prima cosa devi aggiungere l'assembly si desidera distribuire nel progetto VS. Ad esempio è possibile creare una cartella "libs" per memorizzare tutti i gruppi esterni che avrete bisogno nel vostro sito del team.

Poi è necessario modificare il file manifest.xml del vostro Definizione Sito del team. È possibile trovare questo file all'interno della cartella "pkg" all'interno del progetto. Essere consapevoli del fatto che la cartella pkg sarà disponibile solo se hai almeno distribuito il tempo di soluzione uno.

OK, ora è necessario aggiungere un nuovo elemento <Assembly> bambino all'elemento <Assemblies> all'interno del file manifest.xml della soluzione team Definizione. Con l'attributo "DeploymentTarget" è possibile stabilire se il gruppo deve essere distribuito al GAC o cartella bin dell'applicazione Web.

L'esempio seguente mostra come l'aspetto degli elementi <Assemblies> come se si desidera aggiungere il "TeamSiteDefinition1.dll" al GAC e di aggiungere il "TestSolution.dll" alla cartella bin. Se avete bisogno di una voce di controllo sicuro per l'assembly è possibile aggiungere anche questo.

<Assemblies>
    <Assembly Location="TeamSiteDefinition1.dll" DeploymentTarget="GlobalAssemblyCache" />
    <Assembly Location="TestSolution.dll" DeploymentTarget="WebApplication">
       <SafeControls>
          <SafeControl ..... />
       </SafeControls>
    </Assembly>
</Assemblies>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top