发布远程服务器 [Win32Exception (0x80004005)]
本文关键字:0x80004005 Win32Exception 布远程 服务器 | 更新日期: 2023-09-27 17:56:12
我想知道我的连接字符串是否错误,因为当我在服务器上发布它时它不起作用,否则当我在调试模式下测试它时它可以工作。
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)'v11.0;Initial Catalog=aspnet-app-20130122205025;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|'aspnet-app-20130122205025.mdf"
providerName="System.Data.SqlClient" />
<add name="SiteSourceContext" connectionString="Data Source=(localdb)'v11.0; Initial Catalog=SiteSourceContext-20130125171153; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|SiteSourceContext-20130125171153.mdf"
providerName="System.Data.SqlClient" />
有人可以帮忙吗?我相对较新并试图学习,所以我不知道我在做什么,但这是我得到的错误:
[Win32Exception (0x80004005): The specified file is not found]
[SqlException (0x80131904): A network-related error or instance-specific 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 that SQL Server is configured to allow remote connections. (Provider: SQL Network Interfaces, error: 52 - Could not locate installation of a runtime database locally. Verify that SQL Server Express is installed and the runtime functionality of local database is enabled.) ]
System.Data.SqlClient.SqlInternalConnection.OnError (SqlException exception, Boolean breakConnection, Action `1 wrapCloseInAction) 6675286
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 688
验证是否已安装 SQL Server Express 并启用本地数据库的运行时功能。
尝试更改以下内容:
Data Source=(LocalDb)'v11.0
对此:
Data Source=.'v11.0
或者这个:
Data Source=.'SQLExpress
请记住,使用 Data Source=(LocalDB)'v11.0
会将凭据限制为创建/拥有数据库的用户。 如果将其发布为 ASP.NET 服务,则代码将在其他用户下运行;可能是网络服务。
此外,看起来连接字符串指定的文件可能只存在于开发环境中,而不存在于要发布到的服务器上。您需要在该服务器上安装 SQLExpress,并设置连接字符串才能访问该服务器。我不会使用Data Source=(LocalDB)'v11.0;
;相反,我会使用 Data Source=localhost'SQLEXPRESS;
或 Data Source=.'SQLEXPRESS
来维护开发环境和部署之间的一致性。
计算机和服务器中安装的 SQL Server 的实例名称可能具有不同的名称。因此,您需要更改连接字符串。如果您已安装 SQL Server,如果没有,则需要安装它。
另一种可能性是,SQL Server 的实例可能未运行。您可以从控制面板转到Windows服务,并检查您存储数据库的SQL Server服务是否启动。如果您有多个 SQL Server 实例,则可能有多个服务。请确保对正确的实例使用连接字符串。
此外,在数据库中,如果您决定使用 Windows 身份验证,则应为相关的 IIS 用户(例如 IIS APPPOOL''DefaultAppPool)授予访问优先级。或者,您可以使用 SQL Server 身份验证。
简而言之,我相信您在引用SQL Server实例时遇到问题。解决该问题时,如果您不尝试使用有效凭据访问数据库,则会遇到身份验证问题。