WCF自托管控制台程序将无法正确托管我的服务

时间:2017-05-19 06:17:02

标签: c# wcf

我在控制台应用程序中有一个自托管的wcf服务,当我使用visual studio调试器时它正常工作,因为当我点击 F5 时它会自动托管服务,但是当我打开服务器时.exe服务无法开始提供 EndPointNotFound exception ,然后将其作为 IIS 服务实施,我需要让控制台工作才能呈现它到我的毕业考试

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
using BriscolaWCFdefLib;

namespace BriscolaWCFdef_Server
{
  class Program
  {
       static void Main(string[] args)
       {
            int control = 2;
            while (control == 2) {
            ServiceHost svcHost = null;
            try
            {                    
                Console.Clear();
                svcHost = new ServiceHost(typeof(BriscolaWCFdefLib.BriscolaService));
                svcHost.Open();
                Console.WriteLine("Gioco della briscola hostato su:");
                Console.WriteLine();
                foreach (var addr in svcHost.BaseAddresses)
                    Console.WriteLine("   {0}", addr);

                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine("Premere 1 per terminare il server, 2 per riavviarlo: ");
                control = Convert.ToInt32(Console.ReadLine());
                svcHost.Close();
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("Impossibile avviare il server: {0}", ex.Message);
                Console.ReadKey();
            }
         }
      }
   }
}

这是服务器代码,有谁知道如何让我的WCF服务与这个自托管控制台程序一起工作?

编辑:

这是System.Servicemodel

部分
<system.serviceModel>
<services>
  <service name="BriscolaWCFdefLib.BriscolaService">
    <endpoint address="" binding="basicHttpBinding" contract="BriscolaWCFdefLib.IBriscolaService">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8733/Design_Time_Addresses/BriscolaWcfLib/BriscolaService/" />
      </baseAddresses>
    </host>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <!-- Per evitare la diffusione di informazioni sui metadati, 
      impostare i valori seguenti su false prima della distribuzione -->
      <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" />
      <!-- Per ricevere i dettagli sull'eccezione per scopi di debug in caso di guasti, 
      impostare il valore riportato sotto su true. Impostarlo su false prima della diffusione 
      per evitare di diffondere informazioni sull'eccezione -->
      <serviceDebug includeExceptionDetailInFaults="False" />
    </behavior>
  </serviceBehaviors>
</behaviors>

0 个答案:

没有答案