Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows服务与实体框架_C#_Asp.net_Entity Framework - Fatal编程技术网

C# Windows服务与实体框架

C# Windows服务与实体框架,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我有一个包含三个项目的解决方案:一个web应用程序、创建代码优先数据库的数据访问层和一个用于同步数据库中某些数据的windows服务。 我也在其他两个项目中引用了数据层。我在web应用程序配置和服务配置中使用相同的连接字符串。对于web应用程序,一切都很好,但是当我访问数据上下文时,所有表都是空的(枚举没有产生任何结果)。我没有错误。 所以我的问题是,我是否遗漏了一些明显的东西 <add name="DataContext" connectionString="Data Sourc

我有一个包含三个项目的解决方案:一个web应用程序、创建代码优先数据库的数据访问层和一个用于同步数据库中某些数据的windows服务。 我也在其他两个项目中引用了数据层。我在web应用程序配置和服务配置中使用相同的连接字符串。对于web应用程序,一切都很好,但是当我访问数据上下文时,所有表都是空的(枚举没有产生任何结果)。我没有错误。 所以我的问题是,我是否遗漏了一些明显的东西

    <add name="DataContext" connectionString="Data Source=(localdb)\MSSQLLocalDB; Database=Purple Moose; Integrated Security=True; User Id=purplemoose; Password=password; MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />

您的连接字符串使用当前windows用户登录数据库。您同时指定了、集成安全性(又名windows用户)和用户名/密码

在这种情况下:

Windows身份验证优先于SQL Server登录。如果同时指定integratedsecurity=true以及用户名和密码,则将忽略用户名和密码,并使用Windows身份验证


因此,您将始终使用当前windows用户登录数据库,这可能是
本地系统
或类似的服务。无论哪种方式,当您需要用户名/密码身份验证时,删除
integratedsecurity=true
或将其设置为false。

您的数据库位于哪里?你检查过为什么它是空的吗?它是本地数据库。它实际上不是空的。我使用相同的凭据从SSMS访问它,所有内容都在那里。web应用程序也可以很好地访问数据,但是当我调试windows服务时,所有表都是空的。您是否使用同一个用户进行连接?连接字符串是什么样子的,它有用户/密码还是使用当前的windows用户进行身份验证?两者都是同一用户。我用我使用的连接字符串更新了问题。这是一个非常好的观点,谢谢。我把它拿走了,其他的东西都保持原样。对web应用程序执行了相同的操作。web应用程序的一切仍然正常,但我现在在windows服务中收到一个错误“用户登录失败”。这仍然是进步。但是为什么web应用程序没有这么说呢?@sandra我刚刚注意到你正在使用LocalDB。LocalDB是操作系统用户的本地数据库。这将导致太远,通过所有复杂的地方数据库。你可以阅读更多关于它的内容。