Debug e Deploy Sql Server Project

mercoledì 13 gennaio 2010 - 18.47

adima80 Profilo | Junior Member

Ciao, sto creando un progetto di tipo sql server in visual studio ma non riesco a testarlo e ad inviarlo al server; vi spiego i passi che ho seguito:

Impostazioni Sql Server 2005 WorkGroup:
1) Dalla console di management "Configurazione superfice di attacco e funzionalità" ho attivato il supporto per il CLR

Impostazioni progetto:
1) Creo un progetto Sql Server in visual studio
2) Indico il db di riferimento e seguo le istruzioni (un paio di di risposte yes per quanto riguarda le password e il debug)
3) Creo un trigger
4) Premo Deploy dal menu contestuale dell'icona del progetto.
Sintassi non corretta in prossimità di 'EXTERNAL'. Per attivare tale funzionalità può essere necessario impostare su un valore superiore il livello di compatibilità del database corrente. Vedere l'argomento della Guida per la stored procedure sp_dbcmptlevel.
5) Controllo su internet e trovo una guida che dice di entrare nella scheda "Debug" delle proprietà del progetto e settare: "Ammetti codice unsafe" e "genera assembly di serializzazione attivato"; se provo a ridistribuire da un altro errore:
Istruzione CREATE ASSEMBLY non riuscita perché l'assembly 'SqlServerProject2' è stato compilato con l'opzione /UNSAFE ma non è stato registrato con l'opzione obbligatoria PERMISSION_SET = UNSAFE


Qualche idea? Devo settare qualche altra impostazione sul server?
Grazie


lbenaglia Profilo | Guru

>Impostazioni Sql Server 2005 WorkGroup:
>1) Dalla console di management "Configurazione superfice di attacco
>e funzionalità" ho attivato il supporto per il CLR
>
>Impostazioni progetto:
>1) Creo un progetto Sql Server in visual studio
>2) Indico il db di riferimento e seguo le istruzioni (un paio
>di di risposte yes per quanto riguarda le password e il debug)
>3) Creo un trigger
Quindi mi sembra di capire che tu stia creando un trigger CLR, giusto?

>4) Premo Deploy dal menu contestuale dell'icona del progetto.
>Sintassi non corretta in prossimità di 'EXTERNAL'. Per attivare
>tale funzionalità può essere necessario impostare su un valore
>superiore il livello di compatibilità del database corrente.
>Vedere l'argomento della Guida per la stored procedure sp_dbcmptlevel.
Ed il database in cui vuoi eseguire il deploy che compatibility level ha?
Hai eseguito per caso il restore di un backup proveniente da una istanza SQL Server 2000?

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

adima80 Profilo | Junior Member

>Quindi mi sembra di capire che tu stia creando un trigger CLR,
>giusto?
Si

>Ed il database in cui vuoi eseguire il deploy che compatibility
>level ha?
>Hai eseguito per caso il restore di un backup proveniente da
>una istanza SQL Server 2000?
Grazie per la dritta, ho appena eseguito:
EXEC sp_dbcmptlevel Azienda001, 90; GO
In effetti il db che sto usando è stato ripristinato un paio di anni fa dal vecchio server 2000 di sviluppo


Adesso è mi sono bloccato su di un altro problema, il debug; ho configurato lo script Test per inserire un record nella tabella che mi interessa, eseguo il progetto e nella pipe di sql server il mio trigger scrive un messaggio di test, il problema è che inserisco un break point questo non viene considerato, il tutto viene eseguito come se niente fosse!
Altro problema:
Io dal mio trigger chiamo un web service creato da terzi, naturalmente alla prima compilazione non ha funzionato... Ho girato un pò su internet e ho trovato questa guida: http://blog.hoegaerden.be/2008/11/11/calling-a-web-service-from-sql-server-2005/
Sembra coerente, ma quando cerco di effettuare il deploy del progetto mi genera questa eccezione:
Operazione CREATE ASSEMBLY per l'assembly 'TriggerCRM' non riuscita perché l'assembly 'TriggerCRM' non è autorizzata per PERMISSION_SET = EXTERNAL_ACCESS. L'assembly è autorizzata nei seguenti casi: il proprietario del database (DBO) dispone dell'autorizzazione EXTERNAL ACCESS ASSEMBLY e la proprietà TRUSTWORTHY del database è attivata oppure l'assembly è firmato con un certificato o una chiave asimmetrica a cui è associato un account di accesso con l'autorizzazione EXTERNAL ACCESS ASSEMBLY

Ho seguito la guida e gli script per abilitare l'utente e il database al caricamento degli assembly ma ancora genera questa eccezione, c'è qualche altra opzione da tenere in considerazione??

Grazie, ciao

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5