【发布时间】:2016-12-08 07:17:34
【问题描述】:
我花了几十个小时试图弄清楚为什么我无法通过我正在编写的 Windows 服务连接到我的数据库,并且在 LocalSystem 下运行。的错误快照是
2016-12-07 23:00:39.98 Logon Login succeeded for user 'thelion'. Connection made using SQL Server authentication. [CLIENT: <local machine>]
2016-12-07 23:00:39.99 Logon Error: 18456, Severity: 14, State: 38.
2016-12-07 23:00:39.99 Logon Login failed for user 'thelion'. Reason: Failed to open the explicitly specified database 'LrcPageTask'. [CLIENT: <local machine>]
2016-12-07 23:04:10.72 Logon Login succeeded for user 'thelion'. Connection made using SQL Server authentication. [CLIENT: <local machine>]
2016-12-07 23:04:10.73 Logon Error: 18456, Severity: 14, State: 38.
2016-12-07 23:04:10.73 Logon Login failed for user 'thelion'. Reason: Failed to open the explicitly specified database 'LrcPageTask'. [CLIENT: <local machine>]
2016-12-07 23:04:20.75 Logon Login succeeded for user 'thelion'. Connection made using SQL Server authentication. [CLIENT: <local machine>]
2016-12-07 23:04:20.75 Logon Error: 18456, Severity: 14, State: 38.
2016-12-07 23:04:20.75 Logon Login failed for user 'thelion'. Reason: Failed to open the explicitly specified database 'LrcPageTask'. [CLIENT: <local machine>]
在调用我的OnStart 方法之后
protected override void OnStart(string[] args)
{
EventLog.WriteEntry(ServiceName + " started");
//PageLoadTimer.Enabled = true;
try
{
repo.Add(new PageDocument()
{
Html = "<p>Test</p>",
PageType = 0,
DateAdded = DateTime.Now,
DateProcessed = null
});
}
catch(Exception e)
{
EventLog.WriteEntry(string.Format("Problem added a page document: {0}", e.Message));
}
}
调用Add方法
public class PageDocumentRepository : PageCRUD
{
public void Add(PageDocument pd)
{
using(var context = GetPageTaskContext())
{
context.PageDocuments.Add(pd);
context.SaveChanges();
}
}
}
GetPageTaskContext 就像
public abstract class PageCRUD
{
public LrcPageTaskEntities GetPageTaskContext()
{
return new LrcPageTaskEntities();
}
}
LrcPageTaskEntities 在哪里
public partial class LrcPageTaskEntities : DbContext
{
public LrcPageTaskEntities()
: base("name=LrcPageTaskEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<PageDocument> PageDocuments { get; set; }
}
我的连接字符串是这样的
<connectionStrings>
<!--<add name="LrcPageTaskEntities" connectionString="metadata=res://*/Models.LrcPageTask.csdl|res://*/Models.LrcPageTask.ssdl|res://*/Models.LrcPageTask.msl;provider=System.Data.SqlClient;provider connection string="data source=DESKTOP-300NQR3\SQLEXPRESS;initial catalog=LrcPageTask;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />-->
<add name="LrcPageTaskEntities" connectionString="metadata=res://*/Models.LrcPageTask.csdl|res://*/Models.LrcPageTask.ssdl|res://*/Models.LrcPageTask.msl;provider=System.Data.SqlClient;provider connection string="data source=DESKTOP-300NQR3\SQLEXPRESS;initial catalog=LrcPageTask;integrated security=false;user id=thelion;password=trump4america;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
我不知道这是否相关,但我正在使用 Visual Studio 2013 Express for Web 和 SQL Server Express 2016。
对解开谜团有帮助吗?
编辑:为了获得更多可见性,这是我尝试使用的登录名:
如果我尝试在LocalSystem 下使用Intregated Security=True 登录并且没有指定User Id / Password(因此我注释掉该连接字符串的原因),它不起作用。如果我尝试这样做,我会收到一连串登录错误
2016-12-07 23:17:27.95 Logon Login succeeded for user 'NT SERVICE\SQLTELEMETRY$SQLEXPRESS'. Connection made using Windows authentication. [CLIENT: <local machine>]
2016-12-07 23:20:37.15 Logon Login succeeded for user 'WORKGROUP\DESKTOP-300NQR3$'. Connection made using Windows authentication. [CLIENT: <local machine>]
2016-12-07 23:20:37.16 Logon Error: 18456, Severity: 14, State: 38.
2016-12-07 23:20:37.16 Logon Login failed for user 'WORKGROUP\DESKTOP-300NQR3$'. Reason: Failed to open the explicitly specified database 'LrcPageTask'. [CLIENT: <local machine>]
2016-12-07 23:20:47.20 Logon Login succeeded for user 'WORKGROUP\DESKTOP-300NQR3$'. Connection made using Windows authentication. [CLIENT: <local machine>]
2016-12-07 23:20:47.20 Logon Error: 18456, Severity: 14, State: 38.
2016-12-07 23:20:47.20 Logon Login failed for user 'WORKGROUP\DESKTOP-300NQR3$'. Reason: Failed to open the explicitly specified database 'LrcPageTask'. [CLIENT: <local machine>]
【问题讨论】:
标签: c# asp.net .net sql-server service