Benutzer mit den meisten Antworten
Bereitstellung einer CLR-Assembly auf dem SQL Server 2008R2

Frage
-
Hallo zusammen,
ich beschäftige mich im Moment mit der Erstellung von CLR-Assemblys in VB.NET zur Bereitstellung auf dem SQL Server 2008R2.
Das Erstellen der Assembly klappt anstandslos, genauso wie das erstmalige Bereitstellen auf dem SQL Server mittels F5.
Beim erneuten Drücken der F5-Taste wird mir in der Statuszeile von Visual Studio die Benachrichtigung "Bereitstellen erfolgreich" angezeigt, jedoch erhalte ich folgende Fehlermeldung:
Diese Nachricht verwirrt mich. Zum einen: weshalb erscheint sie nicht gleich beim ersten Mal?
Zweitens: meine Suche im Internet ergab, dass der "Debugger" (ich nehme an, hier ist der Benutzer gemeint, den ich in der Verbindungszeichenfolge für den SQL Server in den Projekt-Eigenschaften festgelegt habe) in der Gruppe "sysadmin" sein muss - in dieser Meldung oben steht aber das genaue Gegenteil.
Weitere Infos:
- die Windows Firewall habe ich konfiguriert oder sogar auch abgeschaltet
- ich befinde mich in einem Home Office und bin über eine VPN-Leitung mit dem Firma-Netzwerk verbunden (falls das eine Rolle spielt).
Ich hoffe, diese Angaben reichen aus, ansonsten fragt bitte - ich weiß nicht, welche Informationen noch relevant sind.
Vielen Dank schon mal.
Michael
Antworten
-
Hallo Michael,
zunächst müssten die beiden Rechner - Server wie Client - konfiguriert werden:
Remotedebugging und -diagnose (bitte alle Abschnitte durcharbeiten, beginnend mit dem Download der für Dich passenden Version der Remote Tools)
und Konfigurieren des Transact-SQL-Debuggers
Wobei es exakt eingestellt werden sollte, denn ein ungesicherter Server wäre mir zu gefährlich ;(
Bei beiden auch die englischen Texte durchschauen - dazu in der URL de-de durch en-us ersetzen -, gelegentlich sind die deutschen nicht auf dem letzten Stand - so fehlt im zweiten der Hinweis auf IPSec.
Ob es (überhaupt) funktioniert, würde ich zuerst mit dem Management Studio prüfen, um erste Probleme zu erkennen und zu beseitigen.[1] Erst danach sollte man sich an den Versuch machen, das Projekt selbst bereit zu stellen und die CLR Funktionen zu debuggen.
Anmerkung: Wenn es Dein ersten CLR Projekt ist, wäre es IMHO sinnvoller das zuerst auf einer lokalen Instanz auf dem lokalen Rechner zu probieren.
Gruß Elmar
[1] Eine Hilfestellung wäre "Unable to start T-SQL Debugging. Could not attach to SQL Server process on ‘DatabaseName’. The RPC server is unavailable."
- Bearbeitet Elmar BoyeEditor Freitag, 7. November 2014 19:13
- Als Antwort markiert Bayer, Michael Montag, 10. November 2014 15:29
Alle Antworten
-
Hallo Michael,
F5 ist nicht wirklich zum Bereitstellen gedacht, sondern startet wirklich das Debugging, nur um eine CLR zu debuggen muss sie zunächst bereit gestellt werden.
Das eigentliche Bereitstellen ohne Debugging erfolgt übers Menü "Erstellen" => "Projektname bereitstellen", geht das den bei Dir?
Siehe auch Bereitstellen von CLR-Datenbankobjekten
Olaf Helper
[ Blog] [ Xing] [ MVP]- Bearbeitet Olaf HelperMVP Freitag, 7. November 2014 15:02
-
Hallo Olaf,
vielen Dank für Deine Antwort. Bei Ausführen des Menüpunktes "Erstellen => xxx bereitstellen" passiert augenscheinlich gar nichts - auch im Ausgabefenster regt sich nichts.
Hingegen, wenn ich F5 drücke, erhalte ich folgende Informationen:
Anschließend dann die in der Ausgangsfrage gezeigte Nachricht.
Den von Dir verlinkten Artikel habe ich schon gelesen; leider hilft er mir nicht weiter. Kann das sein, dass das etwas mit den "Visual Studio Remote Tools" zu tun hat (ich hab ehrlich gesagt keine Ahnung, was das ist)? Ich hab gelesen, dass die nicht übers Internet funktionieren.
Viele Grüße
Michael
-
Hallo Michael,
zunächst müssten die beiden Rechner - Server wie Client - konfiguriert werden:
Remotedebugging und -diagnose (bitte alle Abschnitte durcharbeiten, beginnend mit dem Download der für Dich passenden Version der Remote Tools)
und Konfigurieren des Transact-SQL-Debuggers
Wobei es exakt eingestellt werden sollte, denn ein ungesicherter Server wäre mir zu gefährlich ;(
Bei beiden auch die englischen Texte durchschauen - dazu in der URL de-de durch en-us ersetzen -, gelegentlich sind die deutschen nicht auf dem letzten Stand - so fehlt im zweiten der Hinweis auf IPSec.
Ob es (überhaupt) funktioniert, würde ich zuerst mit dem Management Studio prüfen, um erste Probleme zu erkennen und zu beseitigen.[1] Erst danach sollte man sich an den Versuch machen, das Projekt selbst bereit zu stellen und die CLR Funktionen zu debuggen.
Anmerkung: Wenn es Dein ersten CLR Projekt ist, wäre es IMHO sinnvoller das zuerst auf einer lokalen Instanz auf dem lokalen Rechner zu probieren.
Gruß Elmar
[1] Eine Hilfestellung wäre "Unable to start T-SQL Debugging. Could not attach to SQL Server process on ‘DatabaseName’. The RPC server is unavailable."
- Bearbeitet Elmar BoyeEditor Freitag, 7. November 2014 19:13
- Als Antwort markiert Bayer, Michael Montag, 10. November 2014 15:29
-
Hallo Elmar,
vielen Dank für Deine Antwort und die Links. Ich habe sie noch nicht durchgelesen, da ich wieder in der Firma bin und innerhalb des Firmen-LANs funktioniert es (was für mich das Wichtigste ist).
Ich werde meine Frage dennoch als gelöst markieren und mich ggf. wieder mit einer neuen melden, falls es mit den Remote Tools nicht klappt.
Der fragliche SQL Server ist übrigens ein Testserver in einer VM, den ich problemlos zurücksetzen kann, falls was schiefgehen sollte.
Danke und Grüße
Michael
-
Hallo Michael,
der Ausgabe nach, wurde das CLR Assembly nicht direkt gegen den SQL Server deployed:
sondern hat eine SQL Datei erstellt, mit dessen Skript das Assembly manuell in den SQL Server übernehmen musst. Also SSMS starten, das Skript öffnen und durchsehen, was es macht und dann ggf. ausführen.
Olaf Helper
[ Blog] [ Xing] [ MVP]- Bearbeitet Olaf HelperMVP Mittwoch, 12. November 2014 08:28