c# - servicio - no se pueden obtener metadatos de https
¿Es posible acceder al servicio WCF sin agregar referencia de servicio? (5)
Necesito acceder a los métodos de servicio de Wcf sin agregar Service Reference. ¿Cómo hacer esto?
Paso 1: creo un servicio WCF.
Paso 2: Agregar referencia de servicio a mi aplicación.
Paso 3: Y accede a los métodos de servicio WCF en la aplicación.
de esta manera,
ServiceReference1.Service1Client obj = new ServiceReference1.Service1Client();
protected void Button1_Click(object sender, EventArgs e)
{
UserDetails userInfo = new UserDetails();
userInfo.UserName = TextBoxUserName.Text;
userInfo.Password = TextBoxPassword.Text;
userInfo.Country = TextBoxCountry.Text;
userInfo.Email = TextBoxEmail.Text;
string result = obj.InsertUserDetails(userInfo);
LabelMessage.Text = result;
}
Arriesgando la mafia de lynch markdown con esto, pero ...
Si la razón por la que no está agregando la referencia es porque debe elegir la URL en tiempo de ejecución, aún puede agregar la referencia y luego cambiarla cuando lo necesite con:
MyProxy.Endpoint.Address = new EndpointAddress(MyUri);
(o haga lo mismo en el constructor cuando realice una instancia).
Cuando John hizo esto: "Paso 2: Agregar una referencia de servicio a mi aplicación". Visual Studio agregó el punto final y los enlaces predeterminados al archivo app.config de su aplicación. No necesita especificar una URL. El código de John debería funcionar bien siempre y cuando el servicio haya implementado los contratos requeridos.
No tengo reputación de comentar la respuesta de "Thilina H", pero puedes usar el código
ServiceContract channel = factory.CreateChannel();
solo si escribiste:
var factory = new ChannelFactory<ServiceContract>(binding, address);
en lugar
ChannelFactoryfactory = new ChannelFactory<ServiceContract>(binding, address);
Sí, es posible invocar como servicio WCF sin agregar una referencia de servicio.
Como primer paso, asumo que tiene su interfaz de contacto de servicio como una biblioteca de clases separada.
Paso 2: crea tu servicio WCF y alojalo en IIS
Paso 3: Consulte la biblioteca de contratos de servicio en la aplicación cliente y luego siga este código
ChannelFactory<IYourServiceContract> factory = new ChannelFactory<IYourServiceContract>("EndpointNameOfYourService");
factory.Endpoint.Address = new EndpointAddress("http://example.com/service");
IYourServiceContract client = factory.CreateChannel();
var result = client.YourMethodtoInvoke(serviceArguments);
Espero que esto ayude
Se puede utilizar de la siguiente manera. Solo asegúrese de agregar la referencia del contrato de servicio.
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://localhost:4684/Service1.svc");
ChannelFactory factory = new ChannelFactory<ServiceContract>(binding, address);
ServiceContract channel = factory.CreateChannel();
string resturnmessage = channel.YourMethod("test");
Desde here se puede entrenar al respecto.