如何在app.config文件中定义端点?

Emb*_*rja 3 wcf

如何在app.config文件中定义具有MEX端点的端点以及然后运行我的应用程序所需的内容.我有一个名为IXMLService的服务合同,我正在使用WsHttpBinding.请举个例子.创建app.config后,如何启动该服务?

Dar*_*rov 6

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior name="MetadataBehavior">
                <serviceMetadata httpGetEnabled="true" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <services>
        <service name="YourNamespace.XMLService" behaviorConfiguration="MetadataBehavior">

            <!-- Use the host element only if your service is self-hosted (not using IIS) -->
            <host>
                <baseAddresses>
                    <add baseAddress="http://localhost:8000/service"/>
                </baseAddresses>
            </host>

            <endpoint address=""
                      binding="wsHttpBinding"
                      contract="YourNamespace.IXMLService"/>

            <endpoint address="mex"
                      binding="mexHttpBinding"
                      contract="IMetadataExchange"/>
        </service>
    </services>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

更新:要启动该服务,您可以编写以下控制台应用程序来托管它(通过添加以前的app.config):

class Program
{
    static void Main(string[] args)
    {
        using (var host = new System.ServiceModel.ServiceHost(typeof(XMLService)))
        {
            host.Open();
            Console.WriteLine("Service started. Press Enter to stop");
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)