Aller au contenu | Aller au menu | Aller à la recherche

Visual Studio 2005 :: Cannot load dynamically generated serialization assembly. In some hosting environments assembly load functionality is restricted ...

Visual Studio 2005 :: Cannot load dynamically generated serialization assembly. In some hosting environments assembly load functionality is restricted, consider using pre-generated serializer. Please see inner exception for more information. ---> System.IO.FileLoadException: LoadFrom(), LoadFile(), Load(byte[]) and LoadModule() have been disabled by the host
Vous avez développé une fonction CLR pour SQL SERVER 2005, qui interroge un web services distant,
ou qui génère de l'XML. Lorsque vous déployez votre projet l'erreur suivant apparaît:


Cannot load dynamically generated serialization assembly. In some hosting environments assembly load functionality is restricted, consider using pre-generated serializer. Please see inner exception for more information. ---> System.IO.FileLoadException: LoadFrom(), LoadFile(), Load(byte[]) and LoadModule() have been disabled by the host...


En fait cela veut dire que Visual studio n'a pas réussi à sérialiser la DLL déployée, il faut donc la déployé à la main. Tout d’abord passer le mode de sérialisation en mode ACTIF, au lieu de automatique dans Visual studio
(PROJET / PROPRIETE DE LA FONCTION, dans la partie GENERRER).

A la racine de votre projet dans le répertoire de Visual studio vous trouverez les deux DLL par exemple dans

"D:\Mes Documents\Visual Studio 2005\Projects\MyFunction\MyFunction\bin\Debug"

Copier les deux DLL sur votre serveur de production, puis déployer les à la main, dans mon cas cela serait:


CREATEASSEMBLY MyFunction from 'C:\Inetpub\wwwroot\webservices\dll\MyFunction.dll' with permission_set = EXTERNAL_ACCESS

CREATE ASSEMBLY MyFunction_Xml from 'C:\Inetpub\wwwroot\webservices\dll\MyFunction.XmlSerializers.dll' with permission_set = EXTERNAL_ACCESS

Efin recréer la fonction:
CREATE FUNCTION [dbo].[MyFunction](@VAR1 [nvarchar](4000))
RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [MyFunctionDansQSQL].[UserDefinedFunctions].[MyFunction]