Tuesday, March 27, 2012

Cannot registering external assembly - System.EnterpriseServices.dll

Hi,

I'm trying to register assembly System.EnterpriseServices.dll. I registred several assemblies, that are referenced:
System.DirectoryServices.dll
System.DirectoryServices.Protocolls.dll
System.Drawing.dll

But then, I found a problem:
While registring System.EnterpriseServices.dll I recieve error message with requirement for registration System.Runtime.Remoting.
While registring System.Runtime.Remoting.dll I recieve error message with requirement for registration System.Web.
An finally, when i try to register System.Web, I recieve message requiring registration of System.EnterpriseServices:

Create failed for SqlAssembly 'System.Web'. (Microsoft.SqlServer.Smo)

Assembly 'system.enterpriseservices, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a.' was not found in the SQL catalog.
Warning: The Microsoft .Net frameworks assembly 'system.web, version=2.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=x86.' you are registering is not fully tested in SQL Server hosted environment. (Microsoft SQL Server, Error: 6503)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.1314&EvtSrc=MSSQLServer&EvtID=6503&LinkId=20476


All assemblies were loaded from the same folder c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\*.dll
Version of sqlServer 9.00.1314.06

Thanks

This should work if you from SQL Server Management Studio execute the CREATE ASSEMBLY statement against where the dll is originally located:

create assembly entService
from 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll'
with permission_set = UNSAFE

When doing it that way, SQL Server is smart enough to work around the various circular references.

Niels
sql

No comments:

Post a Comment