ho un servizio denominato WcfService2 (originale lo so), che ha presentare un'IService.cs con un'interfaccia pubblica:ServiceHost supporta solo i tipi di servizio di classe
namespace WcfService2
{
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet(UriTemplate = "/{value}")]
string GetData(string value);
}
}
poi ho la mia classe pubblica Service1.svc.cs File che restituisce una stringa per il valore in questo modo:
namespace WcfService2
{
public class Service1 : IService1
{
public string GetData(string value)
{
return string.Format("You entered: {0}", value);
}
}
}
ora sto cercando di ospitare questo servizio con una console app in questo modo:
namespace Host
{
class Program
{
static void Main(string[] args)
{
WebHttpBinding binding = new WebHttpBinding();
WebServiceHost host =
new WebServiceHost(typeof(IService1));
host.AddServiceEndpoint(typeof(IService1),
binding,
"http://localhost:8000/Hello");
host.Open();
Console.WriteLine("I DONT LIKE REST!");
Console.WriteLine("Press <RETURN> to KILL REST FOR GOOD");
Console.ReadLine();
}
}
}
Ma ho ricevuto un errore dopo l'esecuzione:
ServiceHost supporta solo i tipi di servizio di classe.
Quindi questo ovviamente si riferisce al fatto che il mio IService sia di tipo di interfaccia pubblica. Ma non so in quale altro modo per crearlo, quando ho creato lo WCF Service application
per la prima volta ti ho dato i due file standard di IService e Service.svc se cancello o, e solo implemento questa soluzione in una classe quando provo ad aggiungere il web servizio nell'anima locale non si trova nulla.
C'è un modo per armeggiare con il codice host?
c'è un'altra risposta per provare @ http://stackoverflow.com/q/19306395/16391 – StingyJack