Mam usługa o nazwie WcfService2 (oryginalna wiem), który posiada plik programu IService.cs z publicznym interfejsem:ServiceHost obsługuje tylko typy klasy usługi
namespace WcfService2
{
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet(UriTemplate = "/{value}")]
string GetData(string value);
}
}
I wtedy mam publiczną klasę Service1.svc.cs plik, który zwraca ciąg dla wartości tak:
namespace WcfService2
{
public class Service1 : IService1
{
public string GetData(string value)
{
return string.Format("You entered: {0}", value);
}
}
}
jestem teraz próbuje zorganizować tę usługę z app konsoli tak:
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();
}
}
}
Po uruchomieniu otrzymuję komunikat o błędzie:
ServiceHost obsługuje tylko typy usług klasowych.
To oczywiście odnosi się do mojego IService będącego typem interfejsu publicznego. Ale nie wiem jak inaczej go utworzyć, kiedy po raz pierwszy utworzyłem WCF Service application
, daje on dwa standardowe pliki IService i Service.svc, jeśli usuwam albo, albo tylko Implementuję to rozwiązanie w jednej klasie, kiedy próbuję dodać sieć służba w miejscowej duszy nic nie znajduje.
Czy istnieje sposób na manipulowanie kodem hosta?
Jest inna odpowiedź spróbować @ http://stackoverflow.com/q/19306395/16391 – StingyJack