servicios entre ejemplo diferencia c# exchangewebservices http-status-code-401 exchange-server-2007 unauthorized

c# - entre - API de servicios web de Exchange y 401 excepción no autorizada



wcf vs rest (3)

Este problema puede causar la autenticación bidireccional proporcionada por Microsoft office 365. Mejor cree una contraseña de aplicación y pase esa contraseña en lugar de Outlook.

exchangeService.Credentials = new WebCredentials("email", "app-pwd");

Cuando intento enviar un correo electrónico utilizando la API de EWS, aparece el siguiente error: (en message.Send(); )

La solicitud ha fallado. El servidor remoto devolvió un error: (401) No autorizado.

Mi código es el siguiente:

ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2007_SP1); //WebService Uri try { exchangeService.Url = new Uri("https://exchangeserver/ews/exchange.asmx"); } catch (Exception ex) { throw new Exception(string.Format("WebService Uri:" + ex)); } //Credentials try { exchangeService.Credentials = new WebCredentials("user@domain", "pwd", "domain"); } catch (Exception ex) { throw new Exception(string.Format("Credentials:" + ex)); } //Send a mail try { EmailMessage message = new EmailMessage(exchangeService); message.Subject = "Test"; message.Body = "Test"; message.ToRecipients.Add("destination@domain"); message.Save(); message.Send(); } catch (Exception ex) { throw ex; }

Leí otras publicaciones en este sitio relacionadas con este problema pero no pudieron resolver mi problema.


Intenta cambiar esto:

exchangeService.Credentials = new WebCredentials("user@domain", "pwd", "domain");

dentro de esto:

exchangeService.Credentials = new WebCredentials("user", "pwd", "domain");

En algún momento, las credenciales de inicio de sesión dependen de la configuración de Exchange / Active Directory. Podría ser usuario @ dominio o dominio / usuario


Me tomó mucho tiempo encontrar una solución para el mismo problema. En mi caso, necesitaba agregar al Directorio virtual de EWS en el sitio de IIS la lista de URL permitidas. Vaya a la administración de IIS, haga clic en el nodo EWS, en el sitio web predeterminado, luego haga doble clic en el filtro de solicitud. Vaya a la pestaña URL y, a la derecha, haga clic en Permitir URL. Ingrese las direcciones URL a través de las cuales invocará el servicio, por ejemplo, example.com/ews/ o server.example.com/ews/

Además, en relación con problemas similares, necesitaba agregar todos los hosts (*) al host de confianza de winrm (de manera predeterminada solo tenía la IP local en la lista).

HTH.