wcf - baseaddresses - endpoint web config
El valor no es vĂ¡lido de acuerdo con su tipo de datos ''clientcontracttype'' (7)
El mismo error ocurre cuando le falta una referencia [en el proyecto con el .config] al proyecto / biblioteca real que contiene la interfaz / contrato de servicio ...
Me aparece un mensaje de error que dice:
El atributo del contrato no es válido. el valor no es válido según su tipo de datos ''clientcontracttype''
A continuación se muestra la configuración del punto final en web.config de esta aplicación WCF. Estoy utilizando .NET Framework 4.5 y Visual Studio 2012. He verificado que el contrato OnlineReporting.Core.Contracts.IReportingInternalWcfPortal
ya está allí.
<endpoint address="http://localhost:63817/ReportingInternalWcfPortal.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding"
contract="OnlineReporting.Core.Contracts.IReportingInternalWcfPortal"
name="ReportingInternalPortal" />
En mi caso tuve un conflicto de nombres.
Cuando agrega una referencia de servicio, Visual Studio genera una clase de cliente como un proxy que implementa el contrato, el nombre predeterminado para ese proxy es el nombre del servicio agregado por "Cliente", por lo que si su servicio es "MyService" la clase de cliente se "MyServiceClient".
Mi problema fue que el nombre de mi proyecto era "MyServiceClient"! Lo que causó este conflicto.
En mi caso, cambié el Contrato de Servicio eliminando involuntariamente una interfaz que era clave para el Contrato de Servicio.
Semanas después, encontré un cliente roto con una referencia de servicio desactualizada. Ya que la eliminación de la interfaz fue un error, la puse de nuevo.
Otra posible solución sería tener que reconstruir la referencia de servicio para que coincida con el nuevo contrato de servicio (en mi caso, habría roto la compilación del proyecto desde que se eliminó la interfaz de referencia).
Gracias a OrangeKing89 por señalarme en la dirección correcta. Sabía que existía la posibilidad de que se modificara el Contrato de Servicio.
Encontré esta pregunta buscando el mismo error en un proyecto de servicio web.
En mi caso, este error ocurrió cuando olvidé agregar el atributo [ServiceContract]
en la interfaz IServiceBase
.
Tan pronto como lo agregué en el error desapareció.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace MyService
{
[ServiceContract]
public interface IServiceBase
{
[OperationContract]
IEnumerable<ListItem> GetListItems();
[OperationContract]
void SaveListItems(IEnumerable<ListItem> listItems);
}
Me doy cuenta de que este es un tema antiguo, pero en mi caso, el problema era que alguien había agregado una referencia de servicio al proyecto y luego decidió tomar otra ruta, pero la entrada permaneció en web.config, así que simplemente Eliminar esa entrada en web.config solucionó el problema por mí.
Sé que esta pregunta es antigua, sin embargo, me encontré con el mismo problema con C # y Visual Studio 2017. Todo funcionaba y compilaba bien, pero no fue así. Bajé de .Net 4.6.2 a 4.6, ya que SQLite v108 no es compatible con 108, luego recibí este error y otros. Me tomó un poco de tiempo encontrar una solución. No vi mi solución en ninguna parte, así que pensé que la coloco para el futuro.
Eliminé mi referencia de servicio, verifiqué todos mis cambios en TFS y luego volví a agregar la referencia de servicio. Entonces construí la solución y todo estuvo bien otra vez.
Revisé la aplicación.config y otros archivos y todos parecían estar bien, simplemente no construí. Obviamente, VS2017 introduce la información de la versión .Net en algún lugar pero no obviamente.
Con suerte, mi solución ayuda a alguien.
Veo que esta pregunta es bastante antigua y no sé si ya ha encontrado una solución, pero por si acaso, esto es lo que encontré que resolverá:
1) En el Explorador de soluciones, en la carpeta Referencias del servicio, haga clic con el botón derecho en el nombre de referencia del servicio con el problema y seleccione "Configurar referencia de servicio".
2) Aparecerá la ventana Configuración de referencia de servicio. Desmarque la casilla "Reutilizar tipos en conjuntos referenciados" y haga clic en el botón Aceptar.
3) Reconstruir el proyecto.
Después de la reconstrucción, la advertencia debe desaparecer.