我试图使用Oauth令牌在.net api上进行身份验证,当我访问/ auth路由时出现以下错误:
发生与网络相关或特定于实例的错误 建立与SQL Server的连接。找不到服务器或 无法访问。验证实例名称是否正确 SQL Server配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。 指定的LocalDB实例不存在。
我整天试图解决这个问题,但没有成功。如果我得到一些帮助,我会很高兴。
所以,这是我得到错误的代码:
var allowedOrigin = "*";
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });
var userManager = context.OwinContext.GetUserManager<ApplicationUserManager>();
AspnetUserService service = new AspnetUserService();
ApplicationUser user = await userManager.FindAsync(context.UserName, context.Password); <---- here, when i send via Postman, i'll wait ~2 minutes to get a response. When the response arrived, this above error appears.
奇怪的是,我试图在带有身份的数据库上进行新注册并且它有效。我试图从DB中获取一些值,也一样。
我在本地运行SQL服务器,这是我的两个连接字符串:
<add name="AuthContext" connectionString="Server=localhost;Initial Catalog=SeeMe2;User ID=SeeMe2;Password=password;" providerName="System.Data.SqlClient" />
<add name="SeeMe2Entities" connectionString="metadata=res://*/Context.SeeMe.csdl|res://*/Context.SeeMe.ssdl|res://*/Context.SeeMe.msl;provider=System.Data.SqlClient;provider connection string="data source=localhost;initial catalog=SeeMe2;persist security info=True;user id=SeeMe2;password=password;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
我试图调试代码,所有变量似乎都有正确的值。 有什么建议?非常感谢!
答案 0 :(得分:1)
您的SQL连接字符串有问题。
您的连接字符串是:
<add name="AuthContext" connectionString="localhost;Initial Catalog=SeeMe2;User ID=SeeMe2;Password=password;" providerName="System.Data.SqlClient" />
您没有服务器和数据库属性。
正确的连接字符串是:
<add name="AuthContext" connectionString="Server=localhost;Database=SeeMe2;User ID=SeeMe2;Password=password;" providerName="System.Data.SqlClient" />
有关连接字符串的更多信息是here。
同时检查您的SeeMe2Entities
连接字符串。
我可以看到它在连接部分的值不正确(您也错过了服务器和数据库)。
答案 1 :(得分:0)
缺少AuthContext连接字符串Server
属性。它应该是这样的。
<add name="AuthContext" connectionString="Server=localhost;Initial Catalog=SeeMe2;User ID=SeeMe2;Password=password;" providerName="System.Data.SqlClient" />