当我尝试使用Visual Studio 2013在Windows 7上使用本地IIS运行我的ASP.NET MVC 4应用程序时。当应用程序尝试连接到localDB \ v11.0时,我遇到以下错误
'/'应用程序中的服务器错误。
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参阅Windows应用程序事件日志。)
2个事件日志是
尝试访问LocalDB实例注册表配置时发生意外错误。有关错误详细信息,请参阅Windows应用程序事件日
和
无法获取本地应用程序数据路径。很可能没有加载用户配置文件。如果在IIS下执行LocalDB,请确保为当前用户启用了配置文件加载。
我在网上找到的大多数解决方案都参考了这篇文章:http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-1-user-profile.aspx
我在描述的情况和我的情况之间看到的唯一区别是所描述的错误代码是0而我的错误代码是50.但是,建议的解决方案对我不起作用。
即使我将修改setProfileEnvironment设置为true并且我花了数小时的时间来使用不同的processModel参数和应用程序池,我也无法通过此错误。
我也遇到了同样的问题,但有一个解决方案。
转到IIS服务器,然后转到运行应用程序的应用程序池。在应用程序池的高级设置中,有一个“过程模型”选项,在该选项下有一个“标识”选项。默认情况下,这是应用程序池标识。将其更改为本地系统,您就完成了。
并记住将App_Data文件夹放在IIS服务器的WWW文件夹中
试试这个,这将解决你的问题:
编辑%windir%\ system32 \ inetsrv \ config \中的applicationHost.config文件,特别是ApplicationPools部分。
将IdentityType更改为NetworkService以使用新创建的数据库。
<add name="ASP.NET v4.0" managedRuntimeVersion="v4.0">
<processModel identityType="NetworkService" loadUserProfile="true" setProfileEnvironment="true" />
</add>
确保应用程序池使用可以访问所需LocalDB实例的标识。
然后在应用程序的身份验证设置中禁用ASP.NET模拟。否则,应用程序使用IUSR_MachineName
帐户访问数据库。
此设置可能不适合生产环境,但可能足以用于数据库和应用程序开发。
也许这会对某人有所帮助。我有同样的问题安装一个空的Epise3rver 7.5+版本,但很明显它没有任何设置或配置,因为我的同事没有这个问题。我结束了卸载所有与MSSQL相关的应用程序并重新安装了MsSQL Express 2014.它工作正常!我之前尝试安装2014但它没有改变任何东西,所以我说再安装2014之前我卸载了所有与MsSQL相关的东西。希望能帮助到你。
使用MVC 5.2.3.0我有一个类似的问题...添加到我的web.config。
<!-- Configure the Sql Membership Provider -->
<membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="SqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlConn"
applicationName="MembershipAndRoleProviderSample"
enablePasswordRetrieval="false"
enablePasswordReset="false"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed" />
</providers>
</membership>