Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von tequila slammer
Thema: mittels SmtpClient versendete E-Mails nicht im Ordner "Gesendet"
Am im Forum: Netzwerktechnologien

Alternativ kannst du ja mal googlen, ob es eine Dokumentation des Thunderbird-"Archiv" gibt, dann könntest du deine gesendeten Mails auch darin ablegen.

Thema: updateSystem.NET
Am im Forum: Projekte

Ich muss mich leider nach langem testen hier auch einmal melden. Ich habe meine Software mit einem Setup ausgerollt. Nun soll ein Update erscheinen, was leider nicht klappt. Über die Administration ist alles ordnungsgemäß eingestellt und er lädt auch scheinbar Daten herunter, die jedoch nie im Verzeichnis ankommen. Starte ich das Programm nach dem Update erneut habe ich immer noch die alte Version.

Die Version ermittle ich wie folgt:


System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

Das Update wird mit folgenden Code angeschoben:


var updateController = new updateSystemDotNet.updateController("http://update.meineDomain.de/Mein Produkt/");
updateController.releaseFilter.checkForAlpha = false;
updateController.releaseFilter.checkForBeta = false;
updateController.releaseFilter.checkForFinal = true;
updateController.projectId = "Meine ID";
updateController.publicKey = "Mein Key";

updateController.requestElevation = true;
updateController.restartApplication = true;
updateController.autoCloseHostApplication = true;

if (updateController.isUpdateDownloaderBusy)
    return;

updateController.updateInteractive(this);

Unklar ist auch, wie ich Daten in einem Unterverzeichnis aktualisieren kann. Ich kann zwar einen Ordner auswählen von dem dann der Inhalt erscheint aber wird die Struktur dann auf dem zu aktualisierendem System beibehalten?

EDIT:

Ich habe mal weiter rumgespielt und dabei folgendes herausgefunden. Mein Update funktioniert, wenn ich nur Dateien im Hauptverzeichnis aktualisieren möchte. Unterorder haben bis zu dem Zeitpunkt geklappt, an dem ich eine weitere nicht im Setup gewesene Datei in das Update-Projekt hinzugefügt habe. Seit dem werden die Dateien, die in einen Unterordner sollen auch im Hauptverzeichnis abgelegt.

Meine Idee war nun, das ich mir einfach ein gleichnamiges Verzeichnis erstelle und dort die Dateien ablege. Das führt aber zu einem Fehler beim Versuch das Update zu installieren, weil es den Ordner ja schon gibt. Ein schwerwiegender Folgefehler ist, dass das Update nicht zurückgerollt wird und meine Applikation damit nicht mehr lauffähig ist, weil unteranderem die Anwendungsdatei (exe) schon entfernt war.

Thema: Bei SingleInstance-Applikation CommandLine-Argumente der Instanzen weitergeben
Am im Forum: GUI: Windows-Forms

Hallo Forum,

ich habe eine Applikation, die pro Anwender nur einmal gestartet werden darf. Sprich pro User eine aktive Instanz. Nun kommt die Anforderung hinzu, dass beim Öffnen weiterer mit dieser Applikation verknüpfter Dokumente diese auch in der Applikation geöffnet werden sollen. Ihr kennt das Verhalten von Excel.

Um zu prüfen, ob die Applikation bereits gestartet ist verwende ich den auf CodeProject und hier schon im Forum verlinkten Beitrag (C# Single Instance App With the Ability To Restore From System Tray (Using Mutex).

Dazu muss man in der Main() Methode


if (!SingleInstance.Start())
{
   SingleInstance.ShowFirstInstance();
   return;
}
einfügen.

Meine Idee war es die ProgramInfo Klasse zu erweitern. Allerdings sind die Argumente immer die gleichen und somit ist die Idee wertlos.

Ich denke das ich viel mehr über die überschriebene WndProc Methode und deren Message-Parameter gehen muss.


        protected override void WndProc(ref Message m)
        {
            if (m.Msg == SingleInstance.WM_SHOWFIRSTINSTANCE)
            {
                WinApi.ShowToFront(this.Handle);
            }
            base.WndProc(ref m);
        }

Nur konnte ich nichts finden, was eine Hinweis darauf gibt, in welcher Property die Parameter gespeichert werden.

Hat einer von euch einen Rat?

Thema: Setup Projekt: Datenbank-Datei bei Update / Deinstallation sichern
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Meines Wissens nach gibt es OOB nicht die Möglichkeit, da der Windows Installer alle Komponenten der Installation registriert.

Du kannst dir aber eine CustomAction programmieren die diese Aufgabe innerhalb deines Setups durchführt.

Thema: Typ Konvertierung: Verschiedene Typen, die aber gleich implementiert sind, ineinander umwandeln
Am im Forum: Rund um die Programmierung

Das ist genau das was ich probiert hatte. Ich habe jedoch die Einschränkung das meine Klassen nicht ausgelagert sind. Da dieser Milenstein bis Montag fertig sein muss werde ich das in einem späteren Release gerade ziehen.

Danke aber schon einmal für die Hilfe.

Thema: Typ Konvertierung: Verschiedene Typen, die aber gleich implementiert sind, ineinander umwandeln
Am im Forum: Rund um die Programmierung

Ich denke gerade darüber nach mir Extension Method zu schreiben, die dann die Wertzuweisungen übernehmen. Eigentlich muss es doch auch anders gehen als so:


public static Service.Contact ToServiceContact(this IContact contact)
{
   return new Service.Contact(){FistName = contact.FirstName,...};
}

Thema: Typ Konvertierung: Verschiedene Typen, die aber gleich implementiert sind, ineinander umwandeln
Am im Forum: Rund um die Programmierung

Hast du irgendwo ein Link wo das näher beschrieben ist? Ich habe mir mal die Service Reference Konfiguration angesehen und damit etwas rumgespielt. Anschließend ging nichts mehr 8o also wieder alles zurück gestellt.

Thema: Typ Konvertierung: Verschiedene Typen, die aber gleich implementiert sind, ineinander umwandeln
Am im Forum: Rund um die Programmierung

Ich meine damit, dass die IContact Objekte die gleichen Properties enthalten wie das Objekt, das der Service erwartet. Beides sind Transferobjekte und haben somit keine von mir erstellten Methoden.

Das Service Objekt würde also auch das IContact Interface implementieren. Allerdings tut es das nicht, weil durch die Serialisierung und durch die Proxy-Generierung vom VisualStudio diese Information verloren geht.

Wie kann ich denn die "inneren" Objekte übergeben, wenn Sie laut Compiler nicht vom gleichen Typ sind - in ihrer Implementierung aber schon? Genau das ist doch mein Problem.

@unconnected: Das habe ich jetzt nicht verstanden.

Thema: Typ Konvertierung: Verschiedene Typen, die aber gleich implementiert sind, ineinander umwandeln
Am im Forum: Rund um die Programmierung

Hallo Forum,

ich habe folgendes Problem bei einem Plug-In System für Datenimporte.
Die PlugIns implementieren eine Methode public List<IContact> LoadData(string path) die vom PlugIn Host aufgerufen wird um die Daten entgegenzunehmen.

Die Daten müssen dann an einen Webservice weitergegeben werden damit sie zentral gespeichert werden können. Und hier tritt mein Problem auf.

Die Daten vom PlugIn implementieren alle IContact. Die Transferobjekte des Webservice tun dies auch nur wissen sie das auf Grund der Proxy-Klassen nicht.

Wie kann ich - ohne großen Aufwand zu betreiben - die Daten einfach an die Webservice Methode SaveContact(Contact contact) übergeben?

Versucht habe ich es schon so:


Service.SaveContact((Service.Contact) iContactObject);

Hier kann er den Typ jedoch nicht wandeln.


Service.SaveContact(iContactObject as Service.Contact);

Hier kann er den Typ auch nicht wandeln und gibt NULL zurück.

Thema: [erledigt] Explizite Konvertierung (Plugins)
Am im Forum: Rund um die Programmierung

Da ich gerade an der gleichen Problematik arbeite, kann ich dir sagen, dass herbivore Recht hat. Du solltest die referenzierte Interface dll auf false bei Lokale Kopie setzen. Und dein Plug-In muss natürlich auch dein IPlugIn Interface implementieren.

Thema: WCF FileUpload >65kb führt zu Bad Request
Am im Forum: Netzwerktechnologien

Ich habe nun alle Antworten einmal getestet. Nichts was hilft. Trotz serviceDebug erhalte ich nach wie vor die gleiche Antwort.

Der Service wird im IIS 7 gehostet.

Thema: WCF FileUpload >65kb führt zu Bad Request
Am im Forum: Netzwerktechnologien

Auch mit Service-Deklaration kommt die gleiche Meldung.


<services>
      <service name="UploadService">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="LargeFileUpload" name="BasicHttpEndpoint" contract="IUploadService" endpointConfiguration="" />
      </service>
    </services>

Thema: WCF FileUpload >65kb führt zu Bad Request
Am im Forum: Netzwerktechnologien

Hallo Forum,

ich erstelle mir gerade einen UploadService via WCF. Für Dateien kleiner 65kb funktioniert alles hervorragend. Bei größeren Dateien, wirft er mir jedoch sofort die Meldung:

Fehler
Der Remoteserver hat eine unerwartete Antwort zurückgegeben: (400) Bad Request.

Nun habe ich schon danach hier im Forum gesucht und auch einen Beitrag zu gefunden. WCF: Beschränkung bei größe eines http-requests?

Allerdings erscheint immer noch die Meldung.

Meine Client Config sieht wie folgt aus:

<system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IUploadService" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="2147283647" maxBufferPoolSize="2147283647" maxReceivedMessageSize="2147283647"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="2147283647" maxStringContentLength="2147283647" maxArrayLength="2147283647"
                        maxBytesPerRead="2147283647" maxNameTableCharCount="2147283647" />
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:50057/FileUploadService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IUploadService"
                contract="FileUpload.IUploadService" name="BasicHttpBinding_IUploadService" />
        </client>
    </system.serviceModel>

Die Service web.config sieht so aus:

 <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="LargeFileUpload" closeTimeout="00:01:00"
            openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
            allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
            maxBufferSize="2147283647" maxBufferPoolSize="5242889" maxReceivedMessageSize="2147283647"
            messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
            useDefaultWebProxy="true">
          <readerQuotas maxDepth="2147283647" maxStringContentLength="2147283647" maxArrayLength="2147283647"
              maxBytesPerRead="2147283647" maxNameTableCharCount="2147283647" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None"
                realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- Legen Sie den Wert unten auf "false" fest, um die Veröffentlichung von Metadateninformationen zu vermeiden, und entfernen Sie den Metadatenendpunkt oben vor der Bereitstellung. -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- Damit in Fehlern Ausnahmedetails zum Debuggen angezeigt werden, legen Sie den Wert unten auf "true" fest. Legen Sie ihn vor der Bereitstellung auf "false" fest, um die Veröffentlichung von Ausnahmeinformationen zu vermeiden. -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

Eine Vermutung ist, dass mein "LargeFileBinding" nicht greift. Allerdings wüßte ich auch nicht, wo ich es noch einbinden könnte.

Thema: Visual Studio 2008: Setup Project: Behandlung von Versionen/Upgrades
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wenn du mit Inno Setup klar kommst sollte der Bruch im Workflow beim Wechseln der IDE nicht das Problem darstellen. In diesem Fall ist nicht der Weg das Ziel.

Thema: Visual Studio 2008: Setup Project: Behandlung von Versionen/Upgrades
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Schuppsl,

grundsätzlich ist das machbar. Ob es mit dem VS-Setup-Projekt geht kann ich dir allerdings nicht sagen, da ich meine Setups mit Wix (Windows Installer XML) erstelle.

Zudem hast du dir da ein nicht gerade leichtes Thema rausgesucht, da der Windows Installer zwei Arten von Paketen verarbeiten kann. Einmal ein Installationspaket (*.msi) und einmal ein Patchpaket (*.msp). Lies dir dazu am besten mal die MSDN durch.

Thema: Membership Provider LogOn Status setzen
Am im Forum: Web-Technologien

Ich habe jetzt angefangen es mit einem Helper zu lösen, der mir dann den Status wieder verändert.

Thema: Membership Provider LogOn Status setzen
Am im Forum: Web-Technologien

Hm. Dann habe ich zwei Fragen.

Wie ändern die genannten Methoden denn meinen Status in der Datenbank? Das können sie meiner Meinung nach nicht. Der User wäre quasi immer angemeldet.

Wie würdest du dann Authentifizierung für einen WCF Service umsetzten? Da das Membership Model dann ja nicht durchgängig nutzbar ist.

Thema: Membership Provider LogOn Status setzen
Am im Forum: Web-Technologien

Hallo Forum,

für ein Projekt benutze ich einen eigenen Membership Provider für eine DB2 Datenbank. Ich habe mir schon die beiden Provider für MS SQL und MySql angesehen aber kein Antwort auf meine Frage finden können. Mir ist bekannt, dass ich in der ValidateUser-Methode via SQL Befehl den LogOn Status setzen kann. Somit kann ich bestimmen, dass der User angemeldet ist. Aber wo ist das Pendant dazu? Wie oder mit welcher Methode wird der Status wieder zurückgesetzt?

mfg Tequila

Thema: Setup Conditions setzen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Nutzt du das VisualStudio Setup Projekt oder ein anders wie etwa Wix?

Thema: PlugIn Konfiguration
Am im Forum: Rund um die Programmierung

Ich danke euch. Eine Menge Informationen die ich mir jetzt mal zugemüte führen werde.

Etwas verunsichert mich jedoch gerade an meinem PlugIn System. Ich versuche wann immer möglich nach den CleanCodeDeveloper Prinzipien zu programmieren. Nun erstelle ich gerade abstrakte Klassen in meiner Interface Assembly um die Klasse meines DataAccess Layers an die PlugIns weitergeben zu können ohne, dass diese meinen DataAccess Layer referenzieren müssen. Irgendwie scheint das nicht gerade dem "Don't repeat yourself"-Prinzip zu entsprechen. Da ich zumindest die Properties alle nocheinmal schreiben muss.

Thema: PlugIn Konfiguration
Am im Forum: Rund um die Programmierung

Hast du für diesen Lösungsweg ein Beispiel zur Hand. Mich interessiert besonders die Config Section (Einlesen) und das Auslagern.

Thema: PlugIn Konfiguration
Am im Forum: Rund um die Programmierung

Hallo Forum,

ich arbeite gerade an einem PlugIn System um eine meiner Anwendungen mit weniger Aufwand erweitern zu können. Soweit funktioniert nun schon alles. Ich habe nur das Problem, dass ich keine Konfigurationen zu den PlugIns erstellen kann.

Zur Lösung des Problem sind mir zwei Ideen gekommen.
1) Ich lege zu jedem PlugIn eine App.Config an. Leider klappt das nicht, weil das PlugIn diese nicht lesen kann. Klar, weil das PlugIn imm Kontext meines Hosts läuft.

2) Das PlugIn muss seine Konfig selbst laden. Im Standardkonstruktor kann ich also xml Deserialisieren. Klingt schonmal nicht schlecht. Vorteil: der Host hat nichts mit der Konfiguration des PlugIns zu tun. Nachteil: Es gibt kein einheitliches System für die Konfiguration.

Wie löst Ihr solche Sachen? Habt Ihr besser Lösungen als meine zweite Idee?

Thema: Schlechte Performance bei MySQL-Datenbankzugriff
Am im Forum: Datentechnologien

Ich bin gerade am Umbauen. Nur das Hauptobjekt auf teebeasts Vorschlag zu ändern brachte keine spürbare Verbesserung.

Thema: Schlechte Performance bei MySQL-Datenbankzugriff
Am im Forum: Datentechnologien

Danke für den Link. Darin wird mein Problem gut erklärt. Ich werde mal teebeast Vorschlag implementieren und dann mal schauen.

Wie löst ihr das, wenn mein Objekt noch unter Objekte enthält? Diese werden auch via einem eigenen Select Befehl erstellt. Hier würde ich nur ungern mit einem join im SQL Statement arbeiten, damit ich die Objekterstellung in der Klasse zum Objekt behalte.

Thema: Schlechte Performance bei MySQL-Datenbankzugriff
Am im Forum: Datentechnologien

Ich habe eine Frage zur Performance bei der Objekt-Erstellung nach folgendem Schema.

Meine Klassen haben eine statische Methode, die ein Objekt erstellt. Einige geben auch Sammlungen von Objekten zurück. Diese Sammlungen fragen nur die Id ab und rufen immer wieder die GetMyObject-Methode auf. Ich versuche damit nach dem DRY-Prinzip zu arbeiten. Nun stelle ich fest, dass das Abrufen der Sammlung recht lange (5-6Sek) dauert obwohl es sich gerade mal um 900 Datensätze in einer MySQL Datenbank handelt.


public static MyObject GetMyObject(int dataBaseObjectId)
{
   var myObject = new MyObject();
   //Datenbankabfragen/ Eigenschaften setzen
   return myObject;
}


public static MyObjectCollection GetMyObjects()
{
   var myObjectCol = new MyObjectCollection();
   //Datenbankabfrageerstellung usw.
   while(reader.read())
   {
      myObjectCol.Add(GetMyObject((int)reader["Id"]));
   }

   return myObjectCol;
}

Thema: SetupProjekt installieren der Applikation + richtige VSTO Runtime Version
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Tina,

grundsätzlich kannst du bei den meisten Setup Builder Conditions einbauen. Worauf die prüfen sollen, kannst du dann festlegen. Google wird dir sicherlich dabei helfen die richtige Bedingung für dein Setup-Programm zu finden.

Soweit mir bekannt, ist es nicht möglich aus einem Setup heraus ein weiteres Setup zu startet. Es gibt aber die Möglichkeit mit Bootstrappern benötigte Pakete in dein Setup zu integrieren.

Thema: Wcf Json Response anpassen
Am im Forum: Netzwerktechnologien

Hallo Forum,

nach langen Diskussionen darf nun doch WCF für die Umsetzung verwendet werden. Ich habe mich heute also mit WCF beschäftigt und ein ersten RESTful Service erstellt. Soweit klappt auch alles. Die Gegenstelle erwartet aber JSON in folgendem Formaten:

{'Status':'ok', 'Data': hier dann die Daten}
{'Status':'error', 'Msg': 'Fehlermeldung'}

Wie kann ich die Rückgabe nun anpassen, wenn ich folgende Service-Methode habe?


School JSONGetSchool(string schoolId)
{
   return School.GetSchool(int.Parse(schoolId));
}

Das Interface ist so deklariert:


[OperationContract]
[WebInvoke(Method = "GET",  ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate="Schools/{schoolId}")]

Thema: Suche VNC (Remote Desktop) Viewer Control ?
Am im Forum: GUI: Windows-Forms

Hallo Lynix google mal nach vncSharp. Das ist das was du suchst. Mein letzter Stand ist aber, dass dieses Control nicht weiterentwickelt wurde.

Thema: WebService soll JSON Result zurück geben
Am im Forum: Netzwerktechnologien

Nein ich, bzw. die Gegenstelle konsumiert nicht mit jquery. Mir reicht, wenn die xml-Notation weg ist. Alles was dazwischen steht scheint ja valides json zu sein.

Thema: WebService soll JSON Result zurück geben
Am im Forum: Netzwerktechnologien

Ich habe es nun ausprobiert. So ganz zu funktionieren scheint es nicht. Zum einen wird mir nun eine "*.json" Datei zum Download angeboten. Und der Inhalt in dieser Datei ist abgeschnitten. Aber grundsätzlich schonmal ohne xml-Notation.