部署ASP.NET MVC+LocalDB应用程序时出现问题



我已经在服务器上部署了我的ASP.NET MVC 5应用程序,但它在使用localdb的每个页面上都会崩溃。

然而,我复制了.mdf文件所在的App_Data文件夹。我甚至在机器上安装了SQL Server 2012 Express。

然而,每次我都会犯同样的错误。

这是一个非常有趣的故事
描述:在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误以及错误在代码中的来源的更多信息。

异常详细信息:System.ComponentModel.Win32异常:可引入的

来源错误:

在执行当前web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈跟踪:

[Win32Exception(0x80004005):Le fichier spéspecifiéest intruvable]
[SqlException(0x80131904):在与SQL Server建立连接时,发生了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。请验证实例名称是否正确,以及SQL Server是否已配置为允许远程连接。(提供程序:SQL网络接口,错误:52-找不到本地数据库运行时安装。请验证SQL Server Express是否已正确安装,以及本地数据库运行时间功能是否已启用。)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔breakConnection,操作`1 wrapCloseInAction)+552431

对不起,尽管我把ui设置为英语,但其中一部分是法语。

web.config文件如下所示:

<connectionStrings>
   <add name="ConnectionString" 
        connectionString="Data Source=(LocalDb)v11.0;AttachDbFilename=C:inetpubwwwrootMygLogWebApp_DataDatabase.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"/>

这是因为LocalDb不用于生产。

请参阅文章:为ASP.NET MVC应用程序创建实体框架数据模型

特别是,这篇文章中的文字:"通常SQL Server Express不用于生产web应用程序。特别是LocalDB,不建议与web应用程序一起用于生产,因为它不是为与IIS一起工作而设计的。"

因此,将connectionString值更改为使用真正的sql server数据库,您就可以开始了!

我遇到了同样的问题,在这里(在生产中使用LocalDb正常吗?)找到了解决方案。@Krzysztof Kozielczyk@提供了两篇文章:第一篇和第二篇。第一次的技巧足以解决我的问题
实际上,我刚刚添加到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>

顺便说一句,我的连接字符串看起来像你的第二个(带有"|DataDirectory|\Database.mdf")。

最新更新