locked
WCF: *.config manuell laden? RRS feed

  • Frage

  • Hallo, ich habe ein Problem. ich möchte das meine App.config, in der meine WCF Konfiguration steht nicht mit ins Programm kompiliert wird.
    Sondern, ich möchte diese Datei extern haben, um beim Programmstart mit einem XmlDocument zu bearbeiten und anschließend manuell ins WCF System zu laden.
    Dienstag, 17. November 2009 20:12

Alle Antworten

  • hallo,
    Sorry, aber wie meinst du das? Die App.config als solches wird nicht kompiliert sondern bleibt als XML File vorhanden.
    Mittwoch, 18. November 2009 20:09
  • Ich möchte die Datei jeder Zeit ändern können, ohne das Projekt neu erstellen zu müssen.
    Im Ausgabeordner des Projektes finde ich nur die die exe und dll dateien, aber keine xml oder config Datei.
    Donnerstag, 19. November 2009 20:23
  • Also wenn du bei Visual Studio auf Hinzufügen Neues Element klickst, dann kannst du da Anwendungskonfigurationsdatei auswählen. Da wird dann eine "app.config" erzeugt, und die wird dann immer mit in dein Ausgabeverzeichnis kopiert als exe.config. So kannst du immer die Datei bearbeiten ohne neu kompilieren zu müssen... Ich habe aber ein ähnliches Problem und denke das hier ist die richtige Stelle. Ich habe eine Consolen-Application erstellt in vs und manuell eine app.config hinzugefügt. Da habe ich nen WCF-Service konfiguriert und meiner Meinung nach ist auch alles da. Endpunkte, Binding, und so weiter. Bei Starten erstelle ich nen neuen ServiceHost und sage "Open", aber er sagt dann immer, es seien keine Endpunkte definiert...

    Hier mal mein gesamter Code.. Was ist daran falsch???
        [ServiceContract]
        public interface IMobileService
        {
            [OperationContract]
            void Connect();
    
            [OperationContract]
            string GetData();
    
            [OperationContract]
            void Disconnect();
        }
    
    
        public class MobileService : IMobileService
        {
            #region IMobileService Member
    
            public void Connect()
            {
    
            }
    
            public string GetData()
            {
                return "muh";
            }
    
            public void Disconnect()
            {
    
            }
    
            #endregion
        }
    
    
    // in Program.cs mach ich folgendes:
    ServiceHost mobileHost = new ServiceHost(typeof(MobileService));
    mobileHost.Open();
    Und zu guter letzt meine im nachhinein eingefügte app.confog:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <bindings />
        <services>
          <service name="MobileService">
            <host>
              <baseAddresses>
                <add baseAddress="http://localhost:8731/Design_Time_Addresses"/>
              </baseAddresses>
            </host>
            <endpoint address="MyMobile"
                      binding="basicHttpBinding" 
                      contract="IMobileService" />
          </service>
        </services>
      </system.serviceModel>
    </configuration>
    Und als Fehlermeldung kommt bei Open immer folgende Exception:
    Der Dienst "MobileService" verfügt über keine Anwendungsendpunkte (keine Infrastrukturendpunkte). Dies kann folgende Ursachen haben: Es wurde keine Konfigurationsdatei für die Anwendung gefunden, in der Konfigurationsdatei wurde kein mit dem Dienstnamen übereinstimmendes Dienstelement gefunden oder im Dienstelement wurden keine Endpunkte definiert.
    VB.NET & C#.NET
    Montag, 7. Dezember 2009 20:55