我正在使用 asp.net MVC5和Visual Studio 2013创建一个Web应用程序。我将 sendgrid API 安装到我的解决方案中,并创建了一个实现接口IIdentityMessageService
的类(实际上我正在遵循教程(。问题是,VS一直说找不到接口,或者我缺少程序集引用。我仔细检查了一下,我有我需要的所有包含和所有程序集引用。我什至去了微软网站并检查我是否使用了正确的网站。代码如下:
using SendGrid;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using System.Web;
using Microsoft.AspNet.Identity;
namespace ESW.Models
{
public class EmailService : IIdentityMessageService
{
public async Task SendAsync(IdentityMessage message)
{
await configSendGridasync(message);
}
// Use NuGet to install SendGrid (Basic C# client lib)
private async Task configSendGridasync(IdentityMessage message)
{
var myMessage = new SendGridMessage();
myMessage.AddTo(message.Destination);
myMessage.From = new System.Net.Mail.MailAddress(
"Joe@contoso.com", "Joe S.");
myMessage.Subject = message.Subject;
myMessage.Text = message.Body;
myMessage.Html = message.Body;
var credentials = new NetworkCredential(
ConfigurationManager.AppSettings["mailAccount"],
ConfigurationManager.AppSettings["mailPassword"]
);
// Create a Web transport for sending email.
var transportWeb = new Web(credentials);
// Send the email.
if (transportWeb != null)
{
await transportWeb.DeliverAsync(myMessage);
}
else
{
Trace.TraceError("Failed to create Web transport.");
await Task.FromResult(0);
}
}
}
}
编辑: http://msdn.microsoft.com/en-us/library/microsoft.aspnet.identity.iidentitymessageservice(v=vs.108(.aspx
这是我用来验证程序集引用的页面。
学习该教程时遇到了同样的问题。蒂琳娜·德席尔瓦让我走上了正确的轨道。这与版本无关,未安装软件包。
这将安装最新版本(使用包管理器控制台(
Install-Package Microsoft.AspNet.Identity.Owin
检查您的Microsoft.AspNet.Identity.Owin版本。您应该至少具有 2.1.0(但最好安装 newset - 现在是 2.2.1(。
如果必须更新 - 请使用NuGet安装它:
Update-Package Microsoft.AspNet.Identity.Owin -Version 2.2.1