C# “HangFire排队电子邮件”;“继承”;但不发送

C# “HangFire排队电子邮件”;“继承”;但不发送,c#,html,smtp,hangfire,system.web,C#,Html,Smtp,Hangfire,System.web,当不使用hangfire时,我可以使用该方法发送电子邮件 当从hangfire调用该方法时,它显示为Successed,但电子邮件不发送 BackgroundJob.Schedule( () => Email(Subject), TimeSpan.FromMinutes(1) ); 然后我尝试了允许类型传递的版本 BackgroundJob.Schedule<WebMail>( () => Email(Subject),

当不使用hangfire时,我可以使用该方法发送电子邮件

当从hangfire调用该方法时,它显示为Successed,但电子邮件不发送

BackgroundJob.Schedule(
    () => Email(Subject),
    TimeSpan.FromMinutes(1)
    );

然后我尝试了允许类型传递的版本

BackgroundJob.Schedule<WebMail>(
        () => Email(Subject),
        TimeSpan.FromMinutes(1)
        );
BackgroundJob.Schedule(
()=>电子邮件(主题),
时间跨度从分钟(1)
);
但是,这会引发有关使用静态类型的编译器错误

谢谢你们的帮助

编辑:

还有更好的选择。然而,我确实找到了一份厚颜无耻的工作。我能够通过创建一个方法来实现这一点,该方法可以向页面发出post请求以实际发送电子邮件。而Hangfire只激活post请求


编辑:NVM解决方案是一个误报,因为测试时留下了一行额外的内容。WebMail类用于ASP.NET网页上下文。当在该上下文之外使用时,它可能没有它所需要的一切,因此您将得到一个NullReferenceException


相反,使用类。

您几乎不应该在代码中放入空的catch块。从实际代码中删除它,并从问题中删除它。还有,你为什么要用WebMail类而不是?看在上帝的份上,请离开并回答你是一个救生员。我已经删除了我刚才在问题中留下的try-catch。我不相信Webmail会成为问题,因为它在内部使用SmtpClient.Webmail是System.Web.Helpers的一部分,后者用于ASP.NET网页。不打算用作一般SMTP客户端或在网页之外使用。再次感谢。我很乐意为您提供帮助。所以,如果你能留下一个答案,我就可以为你接受。
System.NullReferenceException
Object reference not set to an instance of an object.

System.NullReferenceException: Object reference not set to an instance of an object.
at System.Web.WebPages.Scope.AspNetRequestScopeStorageProvider.get_RequestScopeInternal()
at System.Web.WebPages.Scope.AspNetRequestScopeStorageProvider.get_CurrentScope()
at System.Web.Helpers.WebMail.set_SmtpServer(String value)
at Email(String Subject)
BackgroundJob.Schedule<WebMail>(
        () => Email(Subject),
        TimeSpan.FromMinutes(1)
        );