如何解决尝试将消息从C#发布到Slack时出现SSL / TSL问题
我正在尝试通过ASP.NET MVC C#中的Slack使用Web挂钩发布消息。尝试执行时出现 SSL / TLS问题。我的代码看起来不错,并且将其与那里的几个教程进行了比较,没有发现任何差异。这是我的SlackClient.cs:
public class SlackClient
{
private readonly Uri _uri;
private readonly Encoding _encoding = new UTF8Encoding();
public SlackClient(string urlWithAccesstoken)
{
_uri = new Uri(urlWithAccesstoken);
}
//Post a message using simple strings
public void PostMessage(string text,string username = null,string channel = null)
{
Payload payload = new Payload()
{
Channel = channel,Username = username,Text = text
};
PostMessage(payload);
}
public HttpResponseMessage PostMessage(Payload payload)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
string payloadJson = JsonConvert.SerializeObject(payload);
var content = new StringContent(payloadJson,Encoding.UTF8,"application/json");
using (HttpClient client = new HttpClient())
{ var result = client.PostAsync(_uri,content).Result; return result; }
}
}
//This class serializes into the Json payload required by Slack Incoming WebHooks
public class Payload
{
[JsonProperty("channel")]
public string Channel { get; set; }
[JsonProperty("username")]
public string Username { get; set; }
[JsonProperty("text")]
public string Text { get; set; }
}
这是我实际调用PostMessage的地方(出于安全考虑,我已将其隐藏在实际的Webhook地址/令牌中)
public void SlackMessagetest()
{
string WebHookUrl = "https://myslackwebsite.slack.com/services/MYWEBHOOKURLFROMSLACK";
SlackClient client = new SlackClient(WebHookUrl);
client.PostMessage(username: "tester",text: "Testing Slack Integration!",channel: "#random");
}
我得到的错误如下:
请求已中止:无法创建SSL / TLS安全通道。
所以看来我的PostMessage方法和URI返回有问题。根据我的研究,它应该可以正常工作!我的Web挂钩已通过验证,并已在Slack中正确设置。
非常感谢任何帮助!
解决方法
也就是说,将SecurityProtocolType.Tls
(TLS 1.2)替换为SecurityProtocolType.Tls12
(TLS 1)
高度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。