c#通过tls1.2交换网络服务

问题描述:

我花了最近几周在互联网上搜索这个问题的解决方案,没有任何运气,所以我转向社区寻求帮助。c#通过tls1.2交换网络服务

我正在尝试在c#中编写一个测试应用程序,该应用程序通过TLS1.2使用Exchange Web服务来连接Exchange Server 2010并发送电子邮件。

我已经使用从https://code.msdn.microsoft.com/Send-Email-with-Exchange-50189e57下载的示例作为起点,并做了少量更改以适应我们的Exchange配置。

我们的Exchange服务器配置为使用TLS 1.2 如果我运行该程序从我们的领域里面它是成功的,但如果我从外面然后运行它,我得到以下信息: “的请求的安全协议不支持”

我们使用的是使用dotnet 4.5,下面的代码是我的测试代码。

private void sendButton_Click(object sender, RoutedEventArgs e) 
    { 
     try 
     { 
      ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); 
      service.Url = new Uri(ExchangeServerURI); 
      ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 
      service.Credentials = new WebCredentials(MailUserName, MailPassword, "api"); 

      EmailMessage message = new EmailMessage(service); 
      message.Subject = subjectTextbox.Text; 
      message.Body = bodyTextbox.Text; 
      message.ToRecipients.Add(recipientTextbox.Text); 
      message.Save(); 

      message.SendAndSaveCopy(); 

      System.Windows.MessageBox.Show("Message sent!"); 
     } 
     catch(Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

任何帮助,得到这个工作将是非常赞赏,

感谢,

约翰

+0

请确保服务器已安装.net 4.5 –

+0

请参阅此[[answer](http://stackoverflow.com/a/28333370/3881866)其中解释有关TLS 1.2和所请求的安全协议不支持的错误。 –

这个问题是由我从没有DOTNET运行该程序的服务器造成的4.5上安装。我错误地假设它已经安装。