SQL Server – Verwenden der CLR-Integration zum Verwenden eines Webdienstes

Es gibt einige tutorials on the web that describe consuming a Web Service using SQL Server 2005's CLR integration. For the most, the process seems pretty convoluted. I've run into several issues including the need to change my database's trust level, and using the sgen tool to create a static XmlSerializer assembly; and I still haven't gotten it working right... (I'm sure I just need to put a little more time and energy into it) im Web, die die Nutzung eines Webdienstes mithilfe der CLR-Integration von SQL Server 2005 beschreiben. Für die meisten scheint der Prozess ziemlich verworren. Ich habe mehrere Probleme, einschließlich der Notwendigkeit, die Vertrauensstufe meiner Datenbank zu ändern, und die Verwendung des sgen-Tools, um eine statische XmlSerializer-Assembly zu erstellen; und ich habe es immer noch nicht richtig gemacht... (Ich bin sicher, dass ich nur ein wenig mehr Zeit und Energie in sie stecken muss)

Welche Auswirkungen hat die Sicherheitskräfte, leistung und Wartung, wenn Sie zu dieser Art von Architektur gehen? Dies wäre wahrscheinlich ein ziemlich stark genutzter Prozess, und eine einfache Wartung ist relativ wichtig.

Ich habe die Freiheit zu wählen, ob ich dies in SQL Server als UDF integrieren möchte, oder ob es sich um eine eigenständige .NET-Bibliothek für Konsolen-/Webanwendungen handelt. Lohnt sich die SQL CLR-Integration mit externen Assemblys?

Antwort auf "SQL Server – Verwenden der CLR-Integration zum Verwenden eines Webdienstes " 3 von antworten

Ich denke, Sie haben Ihre eigene Frage beantwortet, ich persönlich finde, dass alles, was einen WebService nennt, mehr als likley besser geeignet ist, OUTSIDE von SQL Server zu existieren. Die Komplikationen, erhöhte Vertrauensniveaus, und wie Sie erwähnt insgesamt verworrenen Prozess macht es eine schwer zu dokumentieren und schwer, Lösung zu warten.

Die kurze Antwort ist, nein, SQL CLR Integration ist die Mühe wahrscheinlich nicht wert.

Die längere Antwort hat mehrere Punkte, beginnend mit der Programmierung von CLR in der Datenbank. Es ist ein feines Werkzeug, wenn es richtig verwendet wird, aber es erhöht den Speicherverbrauch und kann zu Leistungsproblemen führen, wenn es nicht richtig gemacht wird. Ich verwende es in meiner Datenbank für sehr spezielle Funktionen, wie z. B. das Hinzufügen von RegEx-Fähigkeiten, aber es wird sparsam verwendet, mit gut getestetem Code, um zu verhindern, dass so viele Probleme wie möglich auftauchen.

Eine Sekunde ist, wie Sie betont haben, müssen Sie die Sicherheit ändern, potenzielle Risiken zu öffnen.

Verwenden Sie eine eigenständige Anwendung, um die Daten in Ihren Server zu laden. Sie haben mehr Kontrolle, weniger Risiko und eine viel einfachere Zeit davon.

Ich habe clr Verfahren, die Webdienste sowohl auf Exchange und AD und ich stimme den oben genannten Beiträgen. Es funktioniert, aber wir sind aufgrund der speziellen Art und Weise, wie Speicher in CLR innerhalb des SQL-Servers behandelt wird, schnell auf Probleme ohne Arbeitsspeicher gestoßen. Wie Sie sich vorstellen können, ist die Leistung für kleine Abfragen in Ordnung, skaliert aber überhaupt nicht.

Im Allgemeinen bestimmt Ihre Datenbankleistung die Leistung Ihrer Anwendung, und ich denke, dass das Setzen einer solchen Logik in Ihre Datenbank ein No-Nein ist, wenn Sie nicht die vollständige Kontrolle über das haben, was Sie tun.

Verwenden Sie CLR für einfache Textmanipulationen und andere Berechnungen, die nicht von externen Ressourcen abhängen.