C# 发送电子邮件的代码在调试模式之外无法工作

C# 发送电子邮件的代码在调试模式之外无法工作,c#,.net,C#,.net,我有一个try/catch块,但它没有抛出任何异常 我最多可以命中一个断点 email.Subject = _subject; 但在这之后,它将不会中断,除非处于调试模式 public void Send() { MailMessage email = new MailMessage(); email.From = new MailAddress(From); foreach (string receiver in Receivers) { e

我有一个try/catch块,但它没有抛出任何异常

我最多可以命中一个断点

email.Subject = _subject;
但在这之后,它将不会中断,除非处于调试模式

public void Send()
{
    MailMessage email = new MailMessage();
    email.From = new MailAddress(From);

    foreach (string receiver in Receivers)
    {
        email.To.Add(new MailAddress(receiver));
    }

    email.Subject = _subject;
    email.Body = Body;
    var client = Client;
    client.Send(email);
}
我没有主意了,谢谢你的帮助

编辑-我不关心断点。我只是想弄明白为什么这个代码不起作用

已解决

正在调试和发布模式之间更改接收器地址


处于释放模式的地址不接受来自未经身份验证的地址的电子邮件。

根据调试器的不同,您需要更改一个设置。例如,VisualStudio询问要做什么。选择第二个选项“禁用我的代码”将在可能的时候考虑断点。

根据调试器的不同,您需要更改一个设置。例如,VisualStudio询问要做什么。选择第二个选项“禁用我的代码”将在可能的时候考虑断点。

您的意思是,如果在发布模式下运行断点,断点将停止工作?这就是预期的行为……你说的是哪个try/catch块?除了@Gusman之外,在编译发布时还有大量的优化。死掉的代码会被删除,并在其他事情中混洗,因此您的PDB文件不会像在调试模式中那样匹配。相关帖子@Gusman我不关心命中断点,这只是在试图解决问题时所做的观察。@ThomasWeller对该方法的调用包含在try/catch块中。您的意思是,如果在发布模式下运行断点,断点将停止工作?这就是预期的行为……你说的是哪个try/catch块?除了@Gusman之外,在编译发布时还有大量的优化。死掉的代码会被删除,并在其他事情中混洗,因此您的PDB文件不会像在调试模式中那样匹配。相关帖子@Gusman我不担心遇到断点,这只是在试图解决问题时所做的观察。@ThomasWeller对该方法的调用包含在try/catch块中