aquí es mi línea de código y me tira error en HttpConext.Current
HttpContext null en el servicio WCF?
string postData = "username=" + HttpContext.Current.Server.UrlEncode(USERNAME);
aquí es mi línea de código y me tira error en HttpConext.Current
HttpContext null en el servicio WCF?
string postData = "username=" + HttpContext.Current.Server.UrlEncode(USERNAME);
eso es normal. No hay contexto HTTP en un servicio web de WCF. Un servicio WCF podría incluso no estar alojado dentro de un servidor web. Puede alojar dentro de una aplicación de consola. Hay un truco que le permite establecer la ASP.NET Compatibility Mode:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
pero no es algo que le recomiendo que hacer.
Me gustaría hacer esto en su lugar:
var postData = "username=" + HttpUtility.UrlEncode(USERNAME);
Y porque tengo un séptimo sentido acerca de a dónde va con este código (enviándolo como una petición HTTP a un servidor web remoto) vamos a llegar directamente a la punto:
using (var client = new WebClient())
{
var values = new NameValueCollection
{
{ "username", USERNAME }
};
var result = client.UploadValues("http://foo.com", values);
}
estoy probando este servicio en mi máquina local ¿no hay manera? –
@Abu Hamzah, no importa, no HttpContext dentro del servicio WCF, por favor. –
+1 para recordar que wcf no siempre está en un servidor web – Michel
Si desea habilitar la HttpContext se puede establecer el indicador aspNetCompatibilityEnabled
en web.config.
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
¿Dónde se indica este código? dentro de un contrato de datos de servicio WCF? –
el código colocado dentro del wcf service.svc.cs –