Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server CLR:como chamar o serviço WCF no procedimento armazenado CLR SQL no projeto de banco de dados


Encontrei isso depois de muita pesquisa e gastei muito tempo nisso no VS 2014
  1. Criar Database Project Chamado "CLR_Test"
  2. Criar Library Para cliente WCF "CLR_Service_Client"

  3. Adicionar Serivce Refrence do serviço wcf para "CLR_Test" e adicione a referência de "CLR_Service_Client" em "CLR_Test"
    4. Você deve alterar a opção DB para poder executar assemblyes inseguros com o código abaixo

    ALTER DATABASE SaleAutomation SET TRUSTWORTHY ON RECONFIGURE

  4. Em "CLR_Test" Project Properties no SQLCLR conjunto de guias Permission level para Unsafe (outra maneira é que após publicar o projeto você altera seu nível de gerenciamento do servidor sql e outra maneira é adicionar nível de permissão ao script de publicação você pode usar cada um deles,
    mas você deve notar que se você usar de project properties somente o projeto "CLR_Test" cria automaticamente Unsafe e você deve usar outras maneiras de definir "CLR_Service_Client" Unsafe )

    6. Execute este script para adicionar Sqlserver para poder executar o serviço wcf
CREATE ASSEMBLY 
SMDiagnostics from
'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\SMDiagnostics.dll'
with 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. agora você publica seu projeto e executa o procedimento armazenado e aproveita.