none
Einstellungen zum Veröffentlichen in VS2015 RRS feed

  • Frage

  • Hallo Forum,

    seit ein paar Tagen spiele ich mit Lightswitch rum und möchte jetzt mal etwas auf einen virtuellen Webserver hochladen.
    Jetzt stehe ich vor dem Problem dass VS offensichtlich nicht mit dem Server verbinden will/kann.

    Unter Erstellen - Veröffentlichen kommt ja der Assistent für die Verbindung.
    Hier kann ich auch erfolgreich eine Verbindung zum Webserver herstellen (Abschnitt Veröffentlischungseinstellungen).
    Sicherheitseinstellungen habe ich schon auf "ohne" HTTPS um das auszuschließen, Firewall hab ich auch abgeschaltet (Serverseitig)
    Beim Register Datenverbindung, wo ich den SQL-Zugang einrichte komme ich nicht weiter.
    Es läuft ein SQL Server 2012 in den ich mich auch im Remotedesktop einloggen kann und wo ich auch eine neue Datenbank angelegt habe (Dachte zwar dass VS das macht aber selbst die Fehlerquelle wollte ich vermeiden).

    Wenn ich beim Servernamen das Dropdown öffne zeigt er mir meinen lokal installierten Server an aber nicht den auf'm Remoteserver.
    Ich habe also den Servernamen manuell eingegeben (TEST_SQLSERVER). Die Testverbindung klappt weder mit Windows-Auth noch mit SQL-Server-Auth.
    Muss der Pfad zum Webserver dem SQL-Servernamen vorangestellt werden? - hab ich auch erfolglos versucht im \ und mit / als Trennung.

    Ich bekomme immer wieder den Fehler wie im angehängten Bild.

    Was kann ich tun bzw. was mache ich falsch?

    Danke und Gruß

    Carsten

    Mittwoch, 10. Februar 2016 16:12

Antworten

  • Hallo Carsten,

    der Admin kann eigentlich auch db_owner sein. Der kann halt noch ein wenig mehr.

    Bei neuen SQL Server Benutzern muss einmal eine SQL Server Anmeldung (Login) erzeugt werden und einmal ein SQL Server Benutzer (Datenbankbenutzer).

    CREATE LOGIN DeinBenutzerName WITH PASSWORD = 's#jfkvgtw5!lka'
    GO
    
    USE DeinDatenbankname
    GO
    CREATE USER [DeinBenutzerName] FOR LOGIN [DeinBenutzerName] EXEC sp_addrolemember N'db_owner', N'DeinBenutzerName'
    GO

    Damit kannst Du das mal im SSMS ausprobieren.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 12. Februar 2016 22:55
    Moderator
  • So, das Problem wäre gelöst.

    Ich hatte ja geschrieben dass ich die Firewall deaktiviert hatte.
    Dem war auch so aber dennoch konnte ich nicht auf die Datenbank zugreifen.

    Nachdem ich die Firewall wieder aktiviert und die Ports freigegeben hatte ging es dann.

    Jetzt habe ich nochmal eine Frage zum SQL.
    Es ist ja zum einen notwendig einen User anzulegen, der Tabellen anlegen/löschen/bearbeiten darf (Datenbankschema veröffentlichen) und einen User der Daten verändern darf (Benutzerverbindung).

    Welcher Benutzer muss in welcher Rolle Mitglied sein?

    Danke und Gruß

    Carsten

    Freitag, 12. Februar 2016 20:34

Alle Antworten

  • Hallo Carsten,

    aktivier auf dem Remoteserver das TCP/IP Protokoll für den SQL Server und sprich diesen dann über

      Servername,1433

    an. Siehe dazu:

      https://technet.microsoft.com/de-de/library/hh231672%28v=sql.110%29.aspx


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 10. Februar 2016 17:04
    Moderator
  • Hallo Stefan,

    vielen Dank für Deine Antwort.

    Ich bin grade etwas verwirrt.
    Das "Microsoft SQL Server Management Studio" zeigt mir meinen Testserver an während der "SQL Server Configuration Manager" Protokolle für MSSQLSERVER anzeigt.Was isn da los? Laufen hier zwei SQL-Server-Instanzen?
    Könnte es sein dass hier 32 und 64Bit parallel laufen?
    Wie/Wo könnte ich das sehen?
    Bin noch Anfänger bei diesem Thema :(

    Gruß Carsten

    Donnerstag, 11. Februar 2016 17:17
  • Hallo Carsten,

    MSSQLSERVER ist in der Regel einfach der Name der Standardinstanz, daher wird das dann im Konfigurationsmanager auch so angezeigt. Wenn es also keine weiteren Hinweis auf mehrere Instanzen gibt, sollte das dieselbe sein, die Du auch im SSMS siehst.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 11. Februar 2016 17:35
    Moderator
  • Hmm...

    sieht nach ner ganzen Menge Klüngel aus.
    Ob ich das alles brauche?

    Donnerstag, 11. Februar 2016 17:54
  • Hi,

    SQL Server installiert gefühlt mehrere hundert Sachen separat, was man auch schön in der Metro Oberfläche neuerer Windows Versionen sehen kann (wenn man die benutzen würde^^). Ich würde bei einer normalen Installation aber dennoch davon ausgehen, dass Du alles brauchst, was Du dort siehst.

    Aber ich frage mich dennoch, warum Du dich nicht zuerst um das aktuelle Problem kümmerst?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 11. Februar 2016 18:00
    Moderator
  • Äh ja auf dem Weg zur Problemlösung bin ich halt über die "falsche" Serverbezeichnung gestolpert.

    Der Server im Configuration Manager hat bereits das Protokoll aktiv.
    Damit ist das Problem woanders zu suchen.
    Ich habe zum Testen den MSSQLSERVER mal abgeschaltet und damit ist auch mein Testserver im Management Studio nicht mehr erreichbar. Scheint sich also um die gleiche Instanz zu handeln.

    So, jetzt wollte ich die Verbindung mit Servername,1433 ausprobieren da schmeisst mir VS nen Fehler den ich gestern noch nicht hatte :(

    Noch bevor der Assistent auf geht

    keine Ahnung was da passiert ist aber das muss ich jetzt erst in den Griff bekommen.
    Ich sag dann Bescheid wie es weiter geht.

    Danke nochmal

    Gruß Carsten 

    Donnerstag, 11. Februar 2016 18:18
  • Aaalsooo...

    VS neu gestartet und der Fehler war weg.

    Versuche:

    Servername,1433

    MSSQLSERVER,1433

    Dieses Mal hat der Remotecomputer die Netzwerkverbindung abgelehnt.

    Diverse andere Versuche mit anderer Authentifizierung bringen die gleichen Fehler.
    Ich denke bei falscher Authentifizierung gäbe es sicher eine andere Meldung oder?

    bin ratlos

    Gruß Carsten

    Donnerstag, 11. Februar 2016 18:38
  • Hallo Carsten,

    in dem Fall würde ich dann doch auf eine Firewall tippen. Schau bitte mal auf dem Rechner, auf dem SQL Server läuft, ob Port 1433 dort für eingehende Verbindungen zugelassen ist. Du schriebst zwar, dass Du die abgeschaltet hättest aber evtl. läuft ja noch eine andere, bspw. von einer Internet Security Suite oder die Windows Firewall, ...

    Ansonsten schau bitte mal hier und arbeite dich durch die Checklisten und weiterführenden Links, die Du dort findest.

      http://stackoverflow.com/questions/16445243/cannot-connect-to-remote-sql-database-with-sql-server-management-console-error


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 11. Februar 2016 18:46
    Moderator
  • Firewall hab ich grade nochmal abgeschaltet, ohne Erfolg.

    Dann mache ich mich mal an die Checkliste.

    Danke

    Donnerstag, 11. Februar 2016 18:49
  • So, das Problem wäre gelöst.

    Ich hatte ja geschrieben dass ich die Firewall deaktiviert hatte.
    Dem war auch so aber dennoch konnte ich nicht auf die Datenbank zugreifen.

    Nachdem ich die Firewall wieder aktiviert und die Ports freigegeben hatte ging es dann.

    Jetzt habe ich nochmal eine Frage zum SQL.
    Es ist ja zum einen notwendig einen User anzulegen, der Tabellen anlegen/löschen/bearbeiten darf (Datenbankschema veröffentlichen) und einen User der Daten verändern darf (Benutzerverbindung).

    Welcher Benutzer muss in welcher Rolle Mitglied sein?

    Danke und Gruß

    Carsten

    Freitag, 12. Februar 2016 20:34
  • Hallo Carsten,

    ein Benutzer, der generell alle Daten verändern darf, sollte in der Rolle db_datawriter sein. Damit er das, was er bearbeiten muss, vorher auch lesen darf, dann noch db_datareader.

    Benutzer, die auch Tabellen, Views, ... anlegen/bearbeiten dürfen, kann man der Rolle db_ddladmin zuordnen.

    Weitere Infos zu den Datenbankrollen findest Du bspw. hier:

      https://technet.microsoft.com/de-de/library/ms189612.aspx


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 12. Februar 2016 21:19
    Moderator
  • Ah ok, dann habe ich den User schonmal richtig. Den Admin hatte ich erst als dbowner angelegt.

    Ich hab jetzt den Admin entsprechend geändert. Beim Veröffentlichen bekomme ich jetzt den Fehler unten.

    (DATABASE_User ist eigentlich der reader/writer und der Anmeldetest klappt)

    Ich hab also vorerst den Admin als User eingesetzt. Jetzt hab ich zwar keine Fehler mehr beim Veröffentlichen aber Den Administrator-User den Visual Studio in den Anwendungstabellen anlegen sollte hat es anscheinend nicht angelegt.
    Na für heute solls das erstmal gewesen sein.

    Danke für Deine Hilfe


    Schweregrad


    Code


    Beschreibung


    Projekt


    Datei


    Zeile


    Unterdrückungszustand


    Fehler


    Unerwarteter Fehler bei der CreateSqlUser-Aufgabe.System.InvalidOperationException: 'DATABASE_User' ist keine gültige SQL Server-Anmeldung. Sie muss vorhanden sein, damit die Anwendung bereitgestellt werden kann.   bei Microsoft.LightSwitch.Publish.Tasks.Deployment.CreateSqlUser.ExecuteCore()   bei Microsoft.LightSwitch.Publish.Tasks.Common.BuildTask.Execute()   bei Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()   bei Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()


    LS_TEST


    C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\LightSwitch\v5.0\Publish\Microsoft.LightSwitch.Publish.targets


    1574

    Freitag, 12. Februar 2016 22:15
  • Hallo Carsten,

    der Admin kann eigentlich auch db_owner sein. Der kann halt noch ein wenig mehr.

    Bei neuen SQL Server Benutzern muss einmal eine SQL Server Anmeldung (Login) erzeugt werden und einmal ein SQL Server Benutzer (Datenbankbenutzer).

    CREATE LOGIN DeinBenutzerName WITH PASSWORD = 's#jfkvgtw5!lka'
    GO
    
    USE DeinDatenbankname
    GO
    CREATE USER [DeinBenutzerName] FOR LOGIN [DeinBenutzerName] EXEC sp_addrolemember N'db_owner', N'DeinBenutzerName'
    GO

    Damit kannst Du das mal im SSMS ausprobieren.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 12. Februar 2016 22:55
    Moderator