2

我使用标准 Internet 应用程序模板创建了一个 MVC 4 应用程序。我添加了一些其他控制器、视图、模型和与我自己的 sql 数据库的连接,它们工作正常。

当我将它发布到文件位置以通过我的 Windows 2012 服务器上的 IIS8 访问时,应用程序可以正常工作,除非我单击登录或注册链接。

我没有对应用程序的注册或登录部分进行任何更改,因此帐户控制器和模型与 webconfig 文件中的 DefaultConnection 字符串保持相同,请参见下文

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

我有几个注册成员,并且有一些需要授权用户才能正确运行的视图和控制器。

当我尝试访问帐户/登录或帐户/注册时出现的错误是:-

“/”应用程序中的服务器错误。

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参阅 Windows 应用程序事件日志。)

2个事件日志是

尝试访问 LocalDB 实例注册表配置时发生意外错误。有关错误详细信息,请参阅 Windows 应用程序事件日志。

无法获取本地应用程序数据路径。很可能未加载用户配置文件。如果在 IIS 下执行 LocalDB,请确保为当前用户启用配置文件加载。

有没有其他人遇到过这个或有任何有用的解决方案的链接?

该应用程序已发布到我的 Windows 服务器的公共文档中的一个文件夹中,并且当前正在同一 LAN 上的计算机上访问

4

2 回答 2

6

我也遇到了同样的问题,但是它只是进入 iis 服务器而不是应用程序运行的应用程序池,并且提前设置应用程序池,我们将获得有身份的进程模型选项默认情况下,应用程序池标识只需将其更改为本地系统并完成

并记住将 App_Data 文件夹放在 IIS 服务器的 WWW 文件夹中

于 2013-12-26T11:15:08.547 回答
1

如果您使用 MVC 4 的 Internet 模板,它将使用 SimpleMembership 作为成员资格提供程序并自动将其连接起来。如果您没有对基本配置进行任何更改 SimpleMembership 在 web.config 中配置为使用本地数据库 (localDB)。SimpleMembership 使用 EF 代码优先和延迟初始化。因此,它会在您第一次尝试访问其任何方法(例如登录和注册)时检查数据库是否可用。如果数据库不可用,它会尝试创建它。这些错误消息可能表明它无法创建此数据库。如果我不得不猜测您在要部署到的服务器上没有适当的权限来创建 localDB。它试图在 App_Data 文件夹中创建它。检查以确保应用程序有权在此文件夹中创建文件。

于 2013-10-11T15:09:52.990 回答