我已经在服务器上部署了我的ASP.NET MVC 5应用程序,但它使用localdb在每个页面上崩溃。
然而,我复制了App_Data
文件所在的.mdf
文件夹。我甚至在机器上安装了SQL Server 2012 Express。
然而每当我得到同样的错误时。
Lefichierspécifiéestintrouvable
描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.ComponentModel.Win32Exception:Lefichierspécifiéestintrouvable
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
堆栈追踪:
[Win32Exception(0x80004005):Lefichierspécifiéestintrouvable]
[SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:52 - 无法找到本地数据库运行时安装。验证是否已正确安装SQL Server Express并且已启用本地数据库运行时功能。)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,Boolean breakConnection,Action`1 wrapCloseInAction)+5352431
对不起,尽管我把ui设置为us-english,但它的一部分用法语。
web.config
文件如下所示:
<connectionStrings>
<add name="ConnectionString"
connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=C:\inetpub\wwwroot\MygLogWeb\App_Data\Database.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
之前就是这样:
<add name="ConnectionString"
connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"/>
答案 0 :(得分:4)
这是因为LocalDb不适合生产使用。
参见文章:Creating an Entity Framework Data Model for an ASP.NET MVC Application
具体来说,文章中的这篇文章:“通常SQL Server Express不用于生产Web应用程序。特别是LocalDB不建议与Web应用程序一起使用,因为它不适用于IIS。”
所以更改你的connectionString值以使用真正的sql server数据库,你应该好好去!
答案 1 :(得分:1)
我遇到了同样的问题,并在这里(Is it normal to use LocalDb in production?)建立了解决方案。 @Krzysztof Kozielczyk @提供了两篇文章:first和second。 从一开始的诀窍足以解决我的问题 其实我刚刚添加到C:\ Windows \ System32 \ inetsrv \ config \ applicationHost.config
<add name="ASP.NET v4.0" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated">
<processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
</add>
顺便说一句,我的连接字符串看起来像你的第二个(&#34; | DataDirectory | \ Database.mdf&#34;)。