将ASP.NET MVC 4 SimpleMemebership数据库发布到IIS 8

时间:2014-01-17 21:56:36

标签: asp.net asp.net-mvc-4 iis web-config localdb

我花了最后5个小时尝试加载我在Windows Server 2012 w / IIS 8服务器上的本地开发计算机上设置的.mdf数据库,但无济于事。

注意:我目前正试图让它在LocalDB上运行,但是如果我可以在我的SQLEXPRESS实例上运行它也会很好(如果它更简单可能会更好)。

我当前的错误:A network-related or instance-specific error 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: 50 - Local Database Runtime error occurred. Cannot create an automatic instance. See the Windows Application event log for error details. )

网站:.net 4.5, x86, using SimpleMembership

我已将我的* .mdf文件从我的dev项目复制到服务器上的App_Data文件夹。如果我在这里删除文件,它们会被创建,但会出现不同的错误。

的applicationHost.config:

<add name="Dashboard" enable32BitAppOnWin64="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated">
    <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
</add>

的Web.config:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Dashboard-20131112173402;Integrated Security=true;AttachDBFilename=|DataDirectory|\aspnet-Dashboard-20131112173402.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>

的Global.asax:

if (!WebSecurity.Initialized)
{
    WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", true);
}

IIS应用程序池设置:

Name: Dashboard    
.NET Framework Version: v4.0
Enable 32-Bit Application: True
Identity: ApplicationPoolIdentity
Load User Profile: True

已发布的网站目录权限:

Dashboard: Full Control

服务器:

  • .\SQlExpress已安装并正在运行
  • Microsoft SQL Server 2012 Express LocalDB已安装并正在运行

我缺少什么?

1 个答案:

答案 0 :(得分:0)

问题是.mdf文件在被附加到我的开发机器上运行的LocalDB实例时被复制。

停止我的本地IISExpress,然后复制数据库修复了问题。

我还有一些Anti Forgery Token错误,这些错误是通过生成机器密钥并将它们放入我的web.config来解决的。可以找到这个问题的答案here