0

我想知道我的连接字符串是否错误,因为当我在服务器上发布它时它不起作用,否则当我在调试模式下测试它时它起作用。

<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
4

4 回答 4

0

请记住,使用Data Source=(LocalDB)\v11.0将凭据限制为创建/拥有数据库的用户。如果您将其发布为 ASP.NET 服务,您的代码将在不同的用户下运行;可能的网络服务。

此外,看起来连接字符串指定的文件可能只存在于您的开发环境中,而不是您要发布到的服务器上。您需要在该服务器上安装 SQLExpress并设置连接字符串以访问它。我不会使用Data Source=(LocalDB)\v11.0;; 相反,我会使用Data Source=localhost\SQLEXPRESS;Data Source=.\SQLEXPRESS保持您的开发环境和部署之间的一致性。

于 2014-02-06T17:20:21.827 回答
0

验证是否安装了 SQL Server Express 并启用了本地数据库的运行时功能。

于 2013-01-26T12:59:52.373 回答
0

Try Changing This :

Data Source=(LocalDb)\v11.0

To This :

Data Source=.\v11.0

Or This :

Data Source=.\SQLExpress
于 2013-01-26T13:04:31.453 回答
0

很可能,您的开发计算机和服务器中安装的 SQL Server 实例名称不同。因此,您需要更改连接字符串。如果你已经安装了 SQL Server,如果没有,你需要安装它。

另一种可能性是,SQL Server 的实例可能没有运行。您可以从控制面板转到 Windows 服务并检查您存储数据库的 SQL Server 服务是否已启动。如果您有多个 SQL Server 实例,则可能有多个服务。确保您为正确的实例使用连接字符串。

此外,在您的数据库中,如果您决定使用 Windows 身份验证,您应该为相关的 IIS 用户(例如 IIS APPPOOL\DefaultAppPool)提供访问优先级。或者,您可以使用 SQL Server 身份验证。

简而言之,我相信您在引用 SQL Server Instance 时遇到了问题。当您解决它时,如果您不尝试使用有效凭据访问数据库,您将遇到身份验证问题。

于 2014-02-10T21:03:33.550 回答