Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/07/2012, 13:30
AndyDroid
 
Fecha de Ingreso: octubre-2011
Mensajes: 114
Antigüedad: 12 años, 6 meses
Puntos: 14
Obtener dato desde función en dll con assembly

Buen día a todos!


Necesito obtener el número de serie del disco duro del servidor desde SQL Server...

Ya tengo mi código en VB .net para obtener el número de serie del disco duro, pero me gustaría pasarlo a una DLL la cual agregaría a SQL con un assembly y así mediante un stored procedure, obtener el número de serie...

El problema es que no sé exactamente donde tengo el error:

No creo que sea en la DLL, porque no me marca ningún error...

Esto es lo que utilizo en SQL Server:

Código SQL:
Ver original
  1. CREATE ASSEMBLY GetSerialDisk
  2. FROM 'DIRECTORIO\ObtenerNumeroSerie.dll'
  3. WITH PERMISSION_SET = EXTERNAL_ACCESS;
  4.  
  5. ;
  6. CREATE PROCEDURE GetSerialDisk(@serial NCHAR(30) OUTPUT)
  7. AS EXTERNAL NAME [GetSerialDisk].[ObtenerNumeroSerie.DiscoDuro].[Funcion]
  8. ;
  9.  
  10. EXEC GetSerialDisk 'C'

Creo la assembly y el stored procedure sin problemas, pero al ejecutarlo me marca el sig error:
Código HTML:
Ver original
  1. Msg 6522, Level 16, State 1, Procedure GetSerialDisk, Line 0
  2. A .NET Framework error occurred during execution of user defined routine or aggregate 'GetSerialDisk':
  3. System.Security.SecurityException: That assembly does not allow partially trusted callers.
  4. System.Security.SecurityException:
  5.    at ObtenerNumeroSerie.DiscoDuro.Funcion(SqlString& pUnidad)
  6. .

En mi código vb .net ya agregué lo correspondiente:
Código vb:
Ver original
  1. <Assembly: AllowPartiallyTrustedCallers()>



Mi idea es enviarle ese parámetro al stored procedure, que es la unidad de la cual se va a obtener el número de serie, y ese mismo parámetro devuelve el número de serie... es posible hacerlo asi?


Gracias por su ayuda!

Última edición por AndyDroid; 10/07/2012 a las 11:09