【问题标题】:exchange web service error - the remote server returned an error 405 method not allowed交换 Web 服务错误 - 远程服务器返回错误 405 方法不允许
【发布时间】:2012-04-27 05:22:08
【问题描述】:

我正在尝试通过 Exchange 网络服务发送邮件。我查看了msdn并找到了一些帮助。 每次我尝试运行此代码时,我都会收到上述错误:( 我几乎在任何地方都尝试阅读......

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);

service.Credentials = new WebCredentials("My user name", "my pass");

System.Net.ServicePointManager.ServerCertificateValidationCallback =
        ((sender, certificate, chain, sslPolicyErrors) => true);

service.Url = new Uri("my web service url.WSDL");
    EmailMessage appointment = new EmailMessage(service);

appointment.Subject = "Test by me";
appointment.Body = "DateTime.Now";
appointment.ToRecipients.Add("xxxxxxx@gmail.com");

appointment.SendAnd

SaveCopy();

【问题讨论】:

  • 您是否尝试使用在域中传递的 NetworkingCredentials 来更改 WebCredentials?你可以在网络浏览器中删除 .asmx 网址吗?
  • 我的错,应该是。 WSDL 而不是 ASMX。是的,我可以从网络浏览器访问它。我没有 NetworkingCredentials 选项。

标签: c# exchangewebservices


【解决方案1】:

在设置服务的 url 时,实际上应该使用 asmx,而不是 wsdl 链接。

service.Url = new Uri("https://server/EWS/Exchange.asmx");

这应该可以正常工作。

【讨论】:

  • 好的,我试过了。并得到以下错误:“从服务收到的响应不包含有效的 XML。”这就是我的代码现在的样子: service.Url = new Uri("xx.xxx.xxx.xxx:xxxx/EWS/Exchange.asmx"); EmailMessage mail = new EmailMessage(service); mail.From = new EmailAddress("from_address@server.com"); mail.ToRecipients .Add("to_address@server.com"); mail.Subject = "电子邮件主题"; mail.Body = "电子邮件正文"; mail.Send();
  • 你应该检查内部异常,看看它是否显示出了什么问题。
  • 内部异常 - “缺少根元素”
  • 我不知道它是否有帮助。为了访问将网络扔到邮箱,我使用了不同的用户名:YYYYY\XXXXX,而在我的程序中,我只使用了 XXXXX。我应该使用什么? YYYY\XXXX 或 XXXXX 或 XXXXX@GGGGGG.biz?也许这就是问题所在?
  • YYYYY\XXXXX 可以用作 NetworkCredential("XXXXX", "password", "YYYYY")。在我的应用中运行良好。
猜你喜欢
  • 1970-01-01
  • 2014-11-27
  • 2017-11-18
  • 2012-10-14
  • 1970-01-01
  • 2014-08-22
  • 1970-01-01
  • 2011-10-24
  • 1970-01-01
相关资源
最近更新 更多