为什么我似乎无法通过LocalSystem连接到我的数据库?

时间:2016-12-07 04:25:48

标签: c# sql asp.net .net service

我的安装程序非常简单

    public MyProjectInstaller()
    {
        processInstaller = new ServiceProcessInstaller()
        {
            Account = ServiceAccount.LocalSystem
        };
        Installers.Add(processInstaller);

        serviceInstaller1 = new ServiceInstaller()
        {
            StartType = ServiceStartMode.Manual,
            ServiceName =  "PageRetriever",
            DisplayName = "PageRetriever"
        };
        Installers.Add(serviceInstaller1);
    }

并且EF生成的连接字符串是

  <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=&quot;data source=DESKTOP-300NQR3\SQLEXPRESS;initial catalog=LrcPageTask;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

我不确定我是否在SQL Server中添加了所有用户 Express

enter image description here

无论如何,当我只是尝试连接到

中的数据库时
    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));
        }
    }

但是当我启动我的服务时它不起作用,没有异常被记录!

  • 任何想法是什么问题?
  • 如果没有,我该怎么做才能找出问题?

我花了20多个小时试图解决这个问题,如果我在接下来的10个小时内无法解决这个问题,我将开始使用文本文件而不是数据库。

1 个答案:

答案 0 :(得分:0)

在LocalSystem下运行的服务只能使用计算机帐户连接到数据库。因此,您应该为计算机帐户授予足够的权限,或者您使用模拟。