none
Nach Publishing funktioniert Programm nicht mehr RRS feed

  • Frage

  • Hallo,

    ich kämpfe gerade mit einen seltsamen Phänomen. Ich frage in einer App WSDL Daten ab. Dies funktioniert auch. Wenn ich jedoch ein Click-Once Publisching durch führe, funktioniert die Abfrage nicht mehr.

    Ich erhalte folgende Fehlermeldung: Der Client und der Server können keine Daten austauschen, da sie nicht über einen gemeinsamen Algorithmus verfügen

    Ich habe versucht, das Problem einzugrenzen.

    • In einen Consolenprogramm tritt das Problem nicht auf. 
    • Egal ob ich es mit VisualStudio oder aus den \bin Verzeichnis starte, tritt das Problem nicht auf
    • Ich habe das tatsächliche Installationsverzeichnis ermittelt. Wenn ich es daraus starte, tritt das Problem nicht auf
    • Nur wenn ich das Programm mit der automatisch erzeugten Verknüpfung starte (egal ob die auf den Desktop oder im Windows-Menu) tritt das Problem auf

    Mir gehen gerade die Ideen aus, wie ich dem Problem begegnen soll. 

    Donnerstag, 25. April 2019 09:38

Antworten

  • Ich habe den Fehler gefunden, wobei es eher die Ursache ist.

    Das TSL Protokoll muss ich auf 1.0 setzten, dann funktioniert es wie gewünscht. Höhere Protokollversionen laufen nicht. 

    • Als Antwort markiert UrielMhezzek Dienstag, 7. Mai 2019 08:09
    Dienstag, 7. Mai 2019 08:09

Alle Antworten

  • Hi,
    Deine Beschreibung sieht aus wie der Zugriff auf ein falsches Verzeichnis. Gerade bei Click-Once wird die lokal installierte Lösung tief im Anwenderbereich vergraben. Zum besseren Verständnis solltest Du mal etwas Code zeigen, insbesondere die Bestimmung des Pfades zur Datei mit den Einstellungen. Gerade bei einer Verknüpfung ist das Verzeichnis mit der Verknüpfung (lnk-Datei) üblicherweise ein anderes als das Verzeichnis mit den Einstellungsdaten (z.B. bin-Ordner).

    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Donnerstag, 25. April 2019 10:10
  • Nach deiner Beschreibung könnte ich mir ein Problem mit dem Working Directory vorstellen, dieses unterscheidet sich beim Start über eine Verknüpfung, gegenüber einem Start im Bin Ordner (bzw. direkt auf dem Installationsverzeichnis).

    Falls dem so ist, kannst du überprüfen, an welchen Stellen dein Programm von einem bestimmten Working Directory ausgeht und die Stellen anpassen.


    - Gruß Florian

    Donnerstag, 25. April 2019 10:29
  • Nach deiner Beschreibung könnte ich mir ein Problem mit dem Working Directory vorstellen, dieses unterscheidet sich beim Start über eine Verknüpfung, gegenüber einem Start im Bin Ordner (bzw. direkt auf dem Installationsverzeichnis).

    Falls dem so ist, kannst du überprüfen, an welchen Stellen dein Programm von einem bestimmten Working Directory ausgeht und die Stellen anpassen.


    - Gruß Florian

    Hallo, ich habe mir die WorkingDirectory ausgeben lassen mit diesen Funktionen:

    System.IO.Directory.GetCurrentDirectory()

    System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath)

    In beiden Fällen bleibt die Ausgabe identisch :(.

    Freitag, 26. April 2019 07:54
  • Hi,
    Deine Beschreibung sieht aus wie der Zugriff auf ein falsches Verzeichnis. Gerade bei Click-Once wird die lokal installierte Lösung tief im Anwenderbereich vergraben. Zum besseren Verständnis solltest Du mal etwas Code zeigen, insbesondere die Bestimmung des Pfades zur Datei mit den Einstellungen. Gerade bei einer Verknüpfung ist das Verzeichnis mit der Verknüpfung (lnk-Datei) üblicherweise ein anderes als das Verzeichnis mit den Einstellungsdaten (z.B. bin-Ordner).

    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Ich verwende keine Einstellungsdateien. Es wird alles was benötigt wird aus einer DB gesogen. Einzig was ich verwende ist die App.Config. 

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    
      <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
          <section name="SolvendiTools.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
        
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" />
      </startup>
      <userSettings>
        <SolvendiTools.Properties.Settings>
          <setting name="MigrationFolder" serializeAs="String">
            <value>Ordner auswählen</value>
          </setting>
          <setting name="Autostart" serializeAs="String">
            <value />
          </setting>
          <setting name="LogWindowTop" serializeAs="String">
            <value>0</value>
          </setting>
          <setting name="LogWindowLeft" serializeAs="String">
            <value>0</value>
          </setting>
          <setting name="LogWindowHeight" serializeAs="String">
            <value />
          </setting>
          <setting name="LogWindowWidth" serializeAs="String">
            <value />
          </setting>
          <setting name="LogWindowState" serializeAs="String">
            <value>Normal</value>
          </setting>
        </SolvendiTools.Properties.Settings>
      </userSettings>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="mssqllocaldb" />
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        </providers>
      </entityFramework>
    
    </configuration>

    Der MigrationFolder wird gar nicht mehr verwendet, ist nur noch drin, um den alten Code lauffähig zu halten, falls man doch noch mal was nach schauen muss. 

    Wenn sie die Einstellungen für das Bindung zum WSDL meinen. Diese werden durch spezielle Klassen des Herstellers automatisch generiert. Ich muss nur die URLs der Services eintragen.
    • Bearbeitet UrielMhezzek Freitag, 26. April 2019 08:00 Ergänzt
    Freitag, 26. April 2019 07:59
  • Nach deiner Beschreibung könnte ich mir ein Problem mit dem Working Directory vorstellen, dieses unterscheidet sich beim Start über eine Verknüpfung, gegenüber einem Start im Bin Ordner (bzw. direkt auf dem Installationsverzeichnis).

    Falls dem so ist, kannst du überprüfen, an welchen Stellen dein Programm von einem bestimmten Working Directory ausgeht und die Stellen anpassen.

    Hallo, ich habe mir die WorkingDirectory ausgeben lassen mit diesen Funktionen:

    System.IO.Directory.GetCurrentDirectory()

    System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath)

    In beiden Fällen bleibt die Ausgabe identisch :(.

    Dann hat die Verknüpfung wohl Parameter für das Working Directory. Gibt es noch weitere Parameter in der Verknüpfung, welche z. B. die Umgebung definieren?

    - Gruß Florian

    Freitag, 26. April 2019 08:49
  • Hallo Florian, 

    da das Projekt per ClickOnce publiziert wird, wird die Verknüpfung automatisch erstellt. Und sie ist einsehbar oder Veränderbar wie eine normale Verknüpfung. 

    Dienstag, 30. April 2019 14:38
  • Ich habe den Fehler gefunden, wobei es eher die Ursache ist.

    Das TSL Protokoll muss ich auf 1.0 setzten, dann funktioniert es wie gewünscht. Höhere Protokollversionen laufen nicht. 

    • Als Antwort markiert UrielMhezzek Dienstag, 7. Mai 2019 08:09
    Dienstag, 7. Mai 2019 08:09