2012-04-15 39 views
5

Tôi đang cố gắng gửi thư qua dịch vụ web trao đổi. Tôi nhìn vào msdn và tìm một số trợ giúp. Mỗi lần tôi cố gắng chạy mã này tôi nhận được các lỗi trên :( Tôi cố gắng đọc gần như ở khắp mọi nơi ...lỗi dịch vụ web trao đổi - máy chủ từ xa trả về lỗi 405 phương pháp không được phép

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("[email protected]"); 

appointment.SendAnd 

SaveCopy(); 
+0

bạn đã cố gắng để thay đổi WebCredentials với NetworkingCredentials đi trong miền không? và bạn có thể AXESS url .asmx trong một trình duyệt web? –

+0

Tệ của tôi, nó sh có thể. WSDL và không phải ASMX. Và có, tôi có thể truy cập nó từ một trình duyệt web. Tôi không có tùy chọn NetworkingCredentials. – user1334890

Trả lời

15

Khi thiết lập các url với dịch vụ, bạn nên trên thực tế sử dụng asmx, và không phải là liên kết wsdl.

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

Điều đó sẽ làm cho nó làm việc.

+0

Ok, tôi đã thử. và nhận được lỗi sau: "Phản hồi nhận được từ dịch vụ không chứa XML hợp lệ". Đây là cách mã của tôi trông giống như bây giờ: dịch vụ.Url = new Uri ("https://xx.xxx.xxx.xxx:xxxx/EWS/Exchange.asmx"); EmailMessage mail = new EmailMessage (dịch vụ); mail.From = new EmailAddress ("[email protected]"); mail.ToRecipients.Add ("[email protected]"); mail.Subject = "Email Subject"; mail.Body = "Email Body"; mail.Send(); – user1334890

+0

Bạn nên kiểm tra ngoại lệ bên trong và xem nó có hiển thị những gì đã xảy ra không. –

+0

Ngoại lệ bên trong - "Phần tử gốc bị thiếu" – user1334890

Các vấn đề liên quan