Laden...

Assembly wurde im SQL-Katalog nicht gefunden - Fehler 6503

Erstellt von hipp1010 vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.473 Views
H
hipp1010 Themenstarter:in
79 Beiträge seit 2011
vor 11 Jahren
Assembly wurde im SQL-Katalog nicht gefunden - Fehler 6503

SQL-Server 2012

Habe folgendes Problem:

Habe mir eine DLL in C# erstellt, die ein Decompress vornimmt. Hierfür habe ich eine DLL "ICSharpCode.SharpZipLib.dll" eingebunden. Wenn ich diese Assembly ganz normal registriere und in Access 2010 einbinde klappt alles wunderbar. Doch für del SQL-Server ist eine Registrierung einer DLL im System eigentlich nicht notwendig. Habe schon andere Assemblies im Server integriert.

Bei der oben genannten Decompress Assembly bekomme ich folgendene Fehlermeldung, sobald ich versuche diese im SQL-Server einzubinden:

Auch das zusätzliche Registrieren der abhängigen DLL im System mit regasm hat nichts genützt.

Weiß jemand Rat?

18 Beiträge seit 2010
vor 11 Jahren

Hast Du den SQLServer-Oberflächenkonfigurator eingeschaltet?


		Select * FROM sys.configurations WHERE name LIKE 'CLR%'

Falls nicht, so kann man es aktivieren:


		EXEC sp_configure 'show advanced options', 1
		GO
		RECONFIGURE
		GO
		sp_configure 'clr enabled', 1
		GO
		RECONFIGURE

Was mir spontan noch einfällt...
...prüfe mal nach ob er mit dem .Net Framework ein problem hat.
Im SQL Server 2008 wollte ermaximal 3.5 haben...?
...eventuell den Kompatibilitätsgrad anpassen
...die

WITH PERMISSION_SET

auf SAFE setzen?

LG Nesso

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo hipp1010,

da du von Regasm schreibst: das ist hier nicht nötig, aber hast du - neben den Hinweisen von Nesso - die Assembly korrekt im SQL Server bereitgestellt? Zeig ggf. wie dort die entsprechende Function erstellt hast, denn für mich schauts so aus als ob da etwas nicht passt.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

H
hipp1010 Themenstarter:in
79 Beiträge seit 2011
vor 11 Jahren

Auf SAFE setzen geht nicht, da ich Datei-Zugriffe habe. Security spielt auf dem Rechner keine Rolle, da Inhouse.

Für das Integrieren der Assembly benutze ich keine SP, sondern gehe über das Menü.

Die in meiner Assembly integrierte DLL wurde mit .NET 1.1 erstellt. Den Versuch, diese in den Server zu integrieren scheitert an der Version.


using System;
using Microsoft.Win32;
using System.IO;
using System.Data.SqlTypes;
using ICSharpCode.SharpZipLib.Zip;

public class Function
{
    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlInt32 FDDIDecompressFiles(SqlString pZipFile, SqlString pTargetPath, SqlString pPassword)
    {
        Int32 retValue = 1;
        string zipFileName = pZipFile.ToString();
        string targetPath = pTargetPath.ToString();
        string password = pPassword.ToString();
        if (DeCompress(zipFileName, targetPath, password))
        {
            retValue = 0;
        }
        return (SqlInt32)retValue;
    }

    internal static bool DeCompress(string pZipFileName, string pTargetPath, string pPassword)
    {
        bool retValue = false;
        retValue = ExtractFilesFromZip(pZipFileName, pTargetPath, pPassword);
        return retValue;
    }
.....
}

DLL ICSharpCode.SharpZipLib als Verweis eingebunden. Interop-Typen einbetten = False, Lokale Kopie = True, Aliase = global, Starker Name = True

Wenn jemand ein Compress oder Decompress schon einmal so integriert hat, würde ich mich um eine Info freuen. Ich möchte ungern ein externes Programm wie 7-Zip verwenden.

Grüße Hipp

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo hipp1010,

Die in meiner Assembly integrierte DLL wurde mit .NET 1.1 erstellt

Gehts denn wenn das Projekt mit .net 3.5 als Version neu kompiliert wird?

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

H
hipp1010 Themenstarter:in
79 Beiträge seit 2011
vor 11 Jahren

Nun habe icherfahren, dass auf Grund der eingeschränkten .NET Umgebung des SQL-Servers es hier zu Schwierigkeiten kommt.
Ich werde die xp_shellcmd nehmen und mir mein bereits kleines Programm passend umbauen.

Merci vielmals.

Gruß Hipp