我使用内置的个人用户身份验证创建了一个简单的ASP.NET MVC应用程序 当我开始本地调试(使用带有iisExpress的VS2013)时,我可以完美地注册和登录新用户。
然后,我使用VS Publish选项将项目部署到Somee.com免费托管,并手动部署App_Data文件夹。 在这里,我可以看到页面和webAPI操作,但我无法注册或登录用户,我收到了错误:
[Win32Exception(0x80004005):系统找不到指定的文件]
[SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:52 - 无法找到本地数据库运行时安装。验证是否已正确安装SQL Server Express并且已启用本地数据库运行时功能。)]
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,UInt32 waitForMultipleObjectsTimeout,Boolean allowCreate,Boolean onlyOneCheckConnection,DbConnectionOptions userOptions,DbConnectionInternal& connection)+414
......
......
我认为是因为它无法找到包含用户数据的.mdf,或者iis无法读取它,但我该如何解决? 我是否必须在SqlServer数据库上设置用户表而不是使用本地mdf?
发布我的代码毫无用处,因为我还没有改变视觉工作室模板的一行。
谢谢!
答案 0 :(得分:1)
模板使用SQL Server的本地数据库功能,该功能需要在计算机上安装SQL Server(使用VS,您的开发计算机上会自动安装SQL Server Express)。
在我看来,您应该设置一个SQL Server(Express应该暂时执行此操作)并更改web.config中的连接字符串以指向新的SQL Server(或者在部署时保留原来的SQL Server数据库与网站相同的机器。)
如果您使用VS的发布功能,则在查看配置时,如果数据库位于远程计算机上,本地数据库将无法正常工作,则应在向导中获得提示。
答案 1 :(得分:0)
"数据源= ....;初始目录= ....;集成安全性= ..."
使用数据库提供的字符串进行更改。它应该是这样的;
" workstation id = .....; packet size = ....; user id = ....; pwd = ....; data source = ....; persist security info = False; initial catalog = ....." 此外,如果它是第一次这样做,你可以遇到很多错误,很容易在互联网上找到