c# wcf sql-server-2012 sqlclr

c# - SQL Server CLR: cómo llamar al servicio WCF en CLR Procedimiento almacenado SQL en el proyecto de la base de datos de Visual Studio 2013



sql-server-2012 sqlclr (2)

Tengo Visual Studio 2013.

Creé un proyecto de base de datos.

Agregué un procedimiento almacenado CLR a ese proyecto, y quiero llamar a un servicio WCF desde allí.

¿Alguien puede ayudarme?

Deseo poder cambiar la dirección del servicio sin cambiar mi ensamblado, de manera similar a lo que puedo hacer en web.config con la sección del endpoint de mi configuración de cliente WCF.


Encontré esto después de mucha búsqueda y paso mucho tiempo en esto en VS 2014

  1. Crear Database Project llamado "CLR_Test"
  2. Crear Library para WCF Client "CLR_Service_Client"
  3. Agregue Serivce Refrence of wcf service a "CLR_Test" y agregue la referencia de "CLR_Service_Client" en "CLR_Test"
    4. Debe cambiar la opción de base de datos para poder ejecutar ensamblajes inseguros con el siguiente código

    ALTER DATABASE SaleAutomation CONFIGURAR CONFIANZA EN LA RECONFIGURA

  4. En el "CLR_Test" Project Properties en la pestaña SQLCLR establezca el Permission level a Unsafe (existe otra forma de que después de publicar el proyecto cambie su nivel desde la administración del servidor sql y de otra forma agregue el nivel de permiso al script de publicación puede usar cada uno de ellos,
    pero debe tener en cuenta que si utiliza desde las project properties del project properties solo el project properties "CLR_Test" crea automáticamente Unsafe y debe usar otras formas para establecer "CLR_Service_Client" Unsafe )

    6. Ejecute estos Scripts para agregar Sqlserver y poder ejecutar el servicio wcf

CREAR ASAMBLEA SMDiagnostics desde ''C: / Windows / Microsoft.NET / Framework / v3.0 / Windows Communication Foundation / SMDiagnostics.dll'' con permission_set = UNSAFE GO

CREATE ASSEMBLY [System.Web] from ''C:/Windows/Microsoft.NET/Framework64/v2.0.50727/System.Web.dll'' with permission_set = UNSAFE GO CREATE ASSEMBLY [System.Messaging] from ''C:/Windows/Microsoft.NET/Framework/v2.0.50727/System.Messaging.dll'' with permission_set = UNSAFE GO CREATE ASSEMBLY [System.IdentityModel] from ''C:/Program Files (x86)/Reference Assemblies/Microsoft/Framework/v3.0/System.IdentityModel.dll'' with permission_set = UNSAFE GO CREATE ASSEMBLY [System.IdentityModel.Selectors] from ''C:/Program Files (x86)/Reference Assemblies/Microsoft/Framework/v3.0/System.IdentityModel.Selectors.dll'' with permission_set = UNSAFE GO CREATE ASSEMBLY -- this will add service modal [Microsoft.Transactions.Bridge] from ''C:/Windows/Microsoft.NET/Framework/v3.0/Windows Communication Foundation/Microsoft.Transactions.Bridge.dll'' with permission_set = UNSAFE GO CREATE ASSEMBLY -- this will add service modal [System.Runtime.Serialization] from ''C:/Windows/Microsoft.NET/Framework/v3.0/Windows Communication Foundation/System.Runtime.Serialization.dll'' with permission_set = UNSAFE GO CREATE ASSEMBLY -- this will add service modal [System.ServiceModel] from ''C:/Windows/Microsoft.NET/Framework/v3.0/Windows Communication Foundation/System.ServiceModel.dll'' with permission_set = UNSAFE GO

  1. ahora publica su proyecto y ejecuta el procedimiento almacenado y disfrute.

Encontré una nueva forma para mi problema Si llama a su wcf service en la referencia de servicio como Web Refrence no debe tener que hacer nada

  1. Primero agregue refrencia de servicio
  2. Segundo agregue el servicio como referencia web
  3. Todo está listo y continúa llamando al servicio con el método