Estoy intentando crear un servicio wcf dentro de un proyecto web C# mvc. He añadido un nuevo elemento de tipo "servicio WCF" y ha añadido un método de prueba en la interfaz proporcionada:Alojamiento del servicio WCF dentro del proyecto web
[ServiceContract]
public interface ITest
{
[OperationContract]
void DoWork();
bool testWorking();
}
y el servicio ofrecido:
public class Test : ITest
{
public void DoWork()
{
}
public bool testWorking()
{
return true;
}
}
Y entonces me he vuelto a el archivo web.config y añade lo siguiente a la etiqueta system.serviceModel:
<services>
<service name="Test" behaviorConfiguration="MyServiceTypeBehaviors">
<endpoint address="" binding="wsHttpBinding" contract="ITest">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceTypeBehaviors" >
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
en este punto, como yo lo entiendo, yo debería ser capaz de ver esto en un navegador y obtener un mensaje de prueba que me decía que es hora de que yo implementó un cliente para usar este servicio. Sin embargo, lo que realmente sucede es que mi navegador descarga el archivo .svc.
dos preguntas:
1) ¿Qué diablos estoy haciendo mal? ¿Por qué no estoy viendo el mensaje esperado?
2) ¿Hay alguna forma en que pueda iniciar automáticamente la herramienta de prueba WCF para que se ejecute en este servicio? Las únicas pautas que puedo encontrar son para comenzar desde un proyecto de WCF.
Actualización: (contenido del archivo SVC - agarró del comentario)
<%@ ServiceHost Language="C#" Debug="true"
Service="myemployersaddress.com.Test" CodeBehind="Test.svc.cs" %>
¿Está alojando el servicio en IIS? Parece que no tienes instalados controladores correctos para .svc. También tenga en cuenta que el atributo de nombre del servicio y el atributo de contrato del punto final deben contener nombres de tipo con espacios de nombres incluidos, pero no es fuente de su problema actual. –
Me pregunté sobre los espacios de nombres, pensé que, dado que estaba alojado en el mismo proyecto, no eran necesarios, pero gracias por la aclaración. Estoy ejecutando esto en IIS utilizando el servidor predeterminado provisto por Visual Studio ... no estoy del todo seguro de cómo se instalaría los manejadores correctos si no están allí. –
El 'Servicio = ...' en su archivo SVC debe ** también ** hacer referencia al nombre completo de su servicio ** clase ** - p. 'Service = YourNamespace.Test'. ¿Es ese el caso en tu archivo svc? La entrada del servicio aquí no es ningún tipo de URL web ni nada por el estilo ... –