C# 从Exchange获取电子邮件附件时遇到问题
当我尝试使用HttpWebRequest.GetResponse()使用GET方法从exchange获取电子邮件附件时,收到错误消息“远程服务器返回错误:(501)未实现”。我试图更改HttpVersion,但我认为这不是权限问题,因为我可以搜索收件箱 我知道我的凭据是正确的,因为它们用于使用HttpWebRequest.Method=Search在收件箱()上获取HREF HREF= 示例代码:C# 从Exchange获取电子邮件附件时遇到问题,c#,.net,exchange-server,exchange-server-2007,C#,.net,Exchange Server,Exchange Server 2007,当我尝试使用HttpWebRequest.GetResponse()使用GET方法从exchange获取电子邮件附件时,收到错误消息“远程服务器返回错误:(501)未实现”。我试图更改HttpVersion,但我认为这不是权限问题,因为我可以搜索收件箱 我知道我的凭据是正确的,因为它们用于使用HttpWebRequest.Method=Search在收件箱()上获取HREF HREF= 示例代码: HttpWebRequest req = (System.Net.HttpWebRequest)
HttpWebRequest req = (System.Net.HttpWebRequest) HttpWebRequest.CreateHREF);
req.Method = "GET";
req.Credentials = this.mCredentialCache;
string data = string.Empty;
using (WebResponse resp = req.GetResponse())
{
Encoding enc = Encoding.Default;
if (resp == null)
{
throw new Exception("Response contains no information.");
}
using (StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.ASCII))
{
data = sr.ReadToEnd();
}
}
有两种可能的解决方案:
internal class AcceptAllCertificatePolicy : ICertificatePolicy
{
public AcceptAllCertificatePolicy()
{
}
public bool CheckValidationResult(ServicePoint sPoint, X509Certificate cert,
WebRequest wRequest, int certProb)
{
//Allways accept
return true;
}
}
您似乎正在对Exchange 2007使用WebDAV。在Exchange2007中,默认情况下未启用WebDAV。因此,您可以: 1) 在Exchange 2007服务器上启用WebDAV 2) 切换到使用Exchange Web服务 我推荐选项2,因为您使用的是C#,因为有一种方法使这类任务比使用WebDAV简单得多。它还允许您最终将WebDAV完全删除的Exchange 2010作为目标