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);
}
}
任何帮助,得到这个工作将是非常赞赏,
感谢,
约翰
答
这个问题是由我从没有DOTNET运行该程序的服务器造成的4.5上安装。我错误地假设它已经安装。
请确保服务器已安装.net 4.5 –
请参阅此[[answer](http://stackoverflow.com/a/28333370/3881866)其中解释有关TLS 1.2和所请求的安全协议不支持的错误。 –