Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

ich versuche mich grad zum ersten mal an einem WCF-Service unter C#. Hab mir auch ein Tutorial im Netz gesucht, von dem ich dachte, dass es recht verständlich ist. Nun habe ich mehrere Projekte in meiner Solution, einmal das Service-Projekt und einmal das Projekt für einen Service Host. Wenn ich mir den Service Host im Browser anzeigen lassen, also die svc-datei, dann kommt immer eine Fehlermeldung, dass die Metadaten nicht veröffentlicht sind. Wenn ich die beschreibung befolge, wie ich sie veröffentliche, ändert sich nichts an der Fehlermeldung. Die Konfiguratiosndatei sieht folgendermaßen aus:


<configuration>

    <system.serviceModel>


        <services>

            <!-- Hinweis: Der Dienstname muss dem Konfigurationsnamen für die Dienstimplementierung entsprechen. -->

            <service name="MVA_Service.InternalService" behaviorConfiguration="MyServiceTypeBehaviors" >

                <!-- Fügen Sie folgenden Endpunkt hinzu.  -->

                <!-- Hinweis: Der Dienst muss über eine HTTP-Basisadresse verfügen, um diesen Endpunkt hinzuzufügen. -->

                <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />

            </service>

        </services>


        <behaviors>

            <serviceBehaviors>

                <behavior name="MyServiceTypeBehaviors" >

                    <!-- Fügen Sie der Dienstverhaltenskonfiguration folgendes Element hinzu. -->

                    <serviceMetadata httpGetEnabled="true" />

                </behavior>

            </serviceBehaviors>

        </behaviors>


    </system.serviceModel>

</configuration>

Ich hoffe jemand kann mir helfen!

Danke schonmal

Moin,

ich sehe keinen Endpunkt für den eigentlichen Dienst ?!

Unter Service müssten mindestens 2 Endpoints auftauchen.

1.) Der Endpoint für den Dienst.

2.) Der Endpoint für die Metadaten

  • Autor

Also ich hab das jetzt folgendermaßen geändert, leider immernoch der gleiche Fehler bzw. die gleiche Meldung:


<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <system.serviceModel>

    <services>

      <service name="MVA_Services.InternalService" behaviorConfiguration="SimpleServiceBehavior">

        <endpoint address="MVA_Objects" binding="basicHttpBinding" contract="MVA_Objects.IInternalInterface" />

        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

      </service>

    </services>

    <behaviors>

      <serviceBehaviors>

        <behavior name="SimpleServiceBehavior">

          <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" policyVersion="Policy12" />

        </behavior>

      </serviceBehaviors>

    </behaviors>

  </system.serviceModel>

</configuration>

Wie man sieht, ist die eigentliche Implementierung des Interfaces und das Interface selbst in einem Unterschiedlichen Namespace. Die Webanwendung läuft ebenfalls in einem eigenen Namespace. Die SVC-Datei hat folgenden Inhalt:
<%@ ServiceHost Language="C#" Debug="true" Service="MVA_Services.InternalService" %>

Ich hab echt kein plan was man da anders machen soll, hab schon mehrfach im Internet gesucht.

Code funktioniert bei mir so.


    [ServiceContract]

    public interface IDemoService

    {

        [OperationContract]

        string GetMessage();

    }


    public class DemoService : IDemoService

    {

        public string GetMessage()

        {

            return "Hallo Welt";

        }

    }


  <system.serviceModel>


    <behaviors>

      <serviceBehaviors>

        <behavior name="DemoServiceBehavior">

          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" policyVersion="Policy12"/>

          <serviceDebug includeExceptionDetailInFaults="true"/>

        </behavior>

      </serviceBehaviors>

    </behaviors>


    <services>

      <service name="WcfServiceDemo.DemoService" behaviorConfiguration="DemoServiceBehavior">

        <endpoint address="" binding="basicHttpBinding" contract="WcfServiceDemo.Contracts.IDemoService" />

        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

      </service>

    </services>


    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />


  </system.serviceModel>


Die Projektstruktur

post-44539-14430449655203_thumb.jpg

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.