我收到 Windows API 调用错误代码:0
我已经安装了 SSMS 2018 并试图找出我是否安装了任何其他版本。为此,我sqllocaldb versions在 CMD 中运行,但收到以下消息:
Windows API 调用“RegGetValueW”返回错误代码:0。
当我手动检查(通过控制面板)时,我看到我安装了 2015 和 2016 版本。那么为什么它们没有显示在 CMD 中。
我试图找到其他解决方案,但没有发现任何对我有意义的解决方案。
我首先使用EF5代码进行编程,并希望使用LocalDb.如何更改LocalDb数据库文件的默认位置?根据http://blogs.msdn.com/b/sqlexpress/archive/2011/10/28/localdb-where-is-my-database.aspx,默认位置为%USERPROFILE%目录
以前我使用的是SqlCe DbConnectionFactory,它接受数据库路径/名称的参数.如果我使用AttachDbFileName参数,那么如果数据库不存在则会引发异常(它应该创建它!).
我正在尝试为我的ASP.NET Web API项目编写单元/集成测试,并努力孤立地运行每个测试.请允许我解释一下.
我有一个配置了部署设置的*.testsettings文件.在每次测试运行之前,将一个空的*.mdf文件部署到测试位置.由于我正在使用实体框架代码优先,我可以使用数据库初始化程序将我的模式推送到数据库并为2行播种特定的表.这非常有效.
我面临的问题是,如果他们以错误的顺序执行,我所有ApiControllers操作的各种测试都会踩到彼此的脚趾上.例如,如果我在POST测试之前运行GET测试,那么GET返回2个对象,如果它们以相反的顺序运行,则GET返回3个对象.
我认为我需要做的是在每次测试之前删除,重新创建和重新设置我的数据库.这是个好主意还是有更好的方法?如果这是我能做的最好的,我会在每次测试之前重新设置数据库.
unit-testing entity-framework ef-code-first asp.net-web-api localdb
我已经使用名为'Projects'的localDB了一段时间了.这是默认情况下ASP.NET MVC 5项目创建的数据库.然而,突然它停止了,我无法连接到它,也没有重新启动它
SqlLocalDb start Projects
Run Code Online (Sandbox Code Playgroud)
我明白了
The specified LocalDB instance does not exist.
Run Code Online (Sandbox Code Playgroud)
我看到了文件夹
C:\Users\[My UserName]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\Projects
Run Code Online (Sandbox Code Playgroud)
另外,我有v11.0 in
C:\Users\[My UserName]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0
Run Code Online (Sandbox Code Playgroud)
我能够连接到v11.
我还可以尝试重新连接它吗?
连接字符串是
<add name="DefaultConnection" connectionString="Data Source=(localdb)\Projects;Initial Catalog=master;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
编辑
我尝试将Db文件附加到连接字符串
AttachDbFileName=C:\Users\[My UserName]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\Projects\master.mdf;
Run Code Online (Sandbox Code Playgroud)
但是,我仍然无法连接
A network-related or instance-specific error occurred while establishing a connection to SQL
Server. The server was not found or was not accessible. Verify that the instance name is correct
and …Run Code Online (Sandbox Code Playgroud) 有没有什么办法来补种一的LocalDB表使用EF?
我不想使用这个SQL命令:
DBCC CHECKIDENT('TableName', RESEED, 0)
Run Code Online (Sandbox Code Playgroud)
仅供参考:我使用的是EF 6.1.
非常感谢.
我有一个非常小的测试应用程序,我在安装过程中尝试安装Windows服务并创建LocalDB数据库,然后在Windows服务运行时连接到该LocalDB数据库.
我遇到了从Windows服务连接到LocalDB实例的巨大问题.
我的安装过程完全如下:
执行安装程序.msi文件,该文件以NT AUTHORITY\SYSTEM帐户运行msiexec进程.
使用以下命令运行自定义操作以执行SqlLocalDB.exe:
使用ADO.NET(System.Data.SqlConnection)运行自定义C#操作以执行以下操作:
Data Source=(localdb)\MYINSTANCE; Integrated Security=true在安装程序完成之前启动Windows服务.
Windows服务安装到LocalSystem帐户,因此也作为NT AUTHORITY\SYSTEM用户帐户运行.
该服务尝试使用上面使用的相同连接字符串进行连接.
尝试从Windows服务中打开与上述连接字符串的连接时,我一直收到以下错误:
System.Data.SqlClient.SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误.指定的LocalDB实例不存在.
这是令人沮丧的,因为msi安装程序自定义操作和Windows服务都在相同的Windows用户帐户下运行(我检查过,它们都是NT AUTHORITY\System).那么为什么第一部作品而第二部作品不在我之外.
我已尝试更改自定义操作和Windows服务中使用的连接字符串以使用共享名称(localdb)\.\MYINSTANCESHARE,我从Windows服务获得完全相同的错误.
我尝试将Windows服务登录的用户帐户更改为我的Windows用户帐户,只要我第一次运行命令将其添加到该实例的SQL服务器登录,该帐户就可以正常工作.
我也试过运行一个控制台应用程序并连接到共享名称连接字符串,这也是有效的.
我也尝试从SQL Server Management Studio连接到共享名称,这也是有效的.
然而,这些方法都没有真正解决我的问题.我需要Windows服务,因为它会在计算机启动后立即启动(即使没有用户登录),并且无论登录哪个用户帐户都启动.
Windows服务如何连接到LocalDB私有实例?
我正在使用SQL Server 2014 Express LocalDB.
我正在尝试使用Visual Studio中的Entity Framework创建一个数据库优先的ASP.NET MVC应用程序.
从空白项目模板开始,我打开服务器资源管理器并尝试添加数据连接.我使用Microsoft SQL Server作为数据源,使用"(localdb)\ v11.0"作为服务器名称.这给了我错误:"连接字符串中的数据源值指定未安装的SQL Server实例.要解决此问题,请选择安装SQL Server的匹配实例或修改连接中的数据源值串."
我正在关注的教程(以及我用谷歌搜索的其他几个地方)提到localdb是随Visual Studio一起安装的.无论哪种方式,我还安装了在这里找到的LocalDB ,但它没有显示出来.
我已尝试按照此帖中的说明操作,但收到错误"无法创建自动实例".
如何让Visual Studio连接到LocalDB?
每个MSDN文档:http://msdn.microsoft.com/en-us/library/hh510202.aspx
LocalDB支持两种实例:自动实例和命名实例.
我怀疑这与我的问题有关,所以我想知道是否有人知道这样的事情是如何自动创建的.如果我可以引用文档,"对于安装在用户计算机上的每个版本的LocalDB,都存在一个LocalDB自动实例."
以下是上述链接中相关部分的副本:
LocalDB的自动实例是公共的.它们是为用户自动创建和管理的,可供任何应用程序使用.对于安装在用户计算机上的每个版本的LocalDB,都存在一个LocalDB自动实例.LocalDB的自动实例提供无缝的实例管理.无需创建实例; 它只是工作.这样可以轻松安装应用程序并迁移到其他计算机.
不同版本的LocalDB将具有不同的实例命名约定:
SQL 2012 LocalDB = V11.0
SQL 2014 LocalDB = ProjectsV12
Run Code Online (Sandbox Code Playgroud)
只要连接应用程序的连接字符串指向正确的实例,一切都很好:
(localdb)\V11.0
(localdb)\ProjectsV12
Run Code Online (Sandbox Code Playgroud)
如果我尝试连接SQL Server Management Studio实例(localdb)\ V11.0或(localdb)\ ProjectsV12,我可以,"已停止"服务器"自动启动".
如果我将VS2013中的SQL Server实例设置为实例(localdb)\ V11.0或(localdb)\ ProjectsV12,我不能,"停止"服务器"失败"启动.它试图启动,但失败了.
以下是实例error.log中找到的错误消息,指示实例启动失败的原因.
014-12-19 15:12:14.09 Logon Error: 17828, Severity: 20, State: 3.
2014-12-19 15:12:14.09 Logon The prelogin packet used to open the connection is structurally invalid; the connection has been closed. Please contact the vendor of the client library. [CLIENT: <named pipe>]
Run Code Online (Sandbox Code Playgroud)
我可能在这里找到了一个线索: …
SQL语句:
CREATE TABLE [dbo].[indexTable] (
[mapId] VARCHAR (50) NOT NULL,
[keyword] VARCHAR (900) NULL,
PRIMARY KEY CLUSTERED ([mapId] ASC)
);
Go
CREATE FULLTEXT CATALOG FTSearch
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误
创建[FTSearch] ...
SQL72014:.Net SqlClient数据提供程序:
消息9982,级别16,状态100,行1
无法在用户实例中使用全文搜索.
我正在使用localdb\v11.0它与visual studio 2012一起安装.
我有一个Actor,在收到来自WebAPI项目的请求后,Actor使用Entity Framework 6查询表.
using (var context = new MetadataContext())
{
var userStorageAccountId = context.Set<UsersToStorageAccounts>()
.Find(userId).StorageAccountId;
}
Run Code Online (Sandbox Code Playgroud)
使用"Add-Migration"..."Update-Database"命令成功创建了DB,并具有以下连接字符串:
@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFileName=C:\Users\xxxx\Metadata.mdf;Connect Timeout=30;Initial Catalog=Metadata;Integrated Security=True;"
Run Code Online (Sandbox Code Playgroud)
当我运行结构服务并且actor尝试访问上下文时,我得到以下异常:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误.无法创建自动实例.有关错误详细信息,请参阅Windows应用程序事件日志.)
并且事件查看器错误是:
无法获取本地应用程序数据路径.很可能没有加载用户配置文件.如果在IIS下执行LocalDB,请确保为当前用户启用了配置文件加载.
我找了一种加载用户配置文件的方法,但我只找到了IIS的解决方案.
请帮忙 :)
localdb ×10
sql ×4
sql-server ×4
c# ×3
actor ×1
asp.net ×1
asp.net-mvc ×1
database ×1
ssms ×1
t-sql ×1
unit-testing ×1