我不断支持关键字:查看访问我的数据库的网页时出现“文件访问重试超时”错误。
所以我假设它无法访问数据库。刚看到我的主页时,我刚才遇到了同样的问题。我改变了(在我的_AppStart.cshtml文件中):
WebSecurity.InitializeDatabaseConnection("MYDB", etc, etc, etc, etc);
为:
WebSecurity.InitializeDatabaseConnection("Data Source=|DataDirectory|\\MYDB.sdf", "System.Data.SqlServerCe.4.0", etc, etc, etc, etc);
它有效!
然而,当我转到另一个页面时(试图从C#类(.cs文件)访问数据库)我得到了同样的错误!
但是,在我的C#文件(.cs)中 - 我无法改变:
var database = Database.Open("MYDB");
为:
var database = Database.Open("Data Source=|DataDirectory|\\MYDB.sdf", "System.Data.SqlServerCe.4.0", etc, etc, etc, etc);
...因为它说:
方法'Open'没有重载需要2个参数(显然)。
错误(在.cs文件中进行上述更改之前:
2>'/'应用程序中的服务器错误。不支持关键字:'文件访问重试超时'。描述:一个 在执行当前Web期间发生了未处理的异常 请求。请查看堆栈跟踪以获取有关的更多信息 错误以及它在代码中的起源。
异常详细信息:System.ArgumentException:不支持关键字: '文件访问重试超时'。
来源错误:
>
> Line 161: foreach(string item in items) Line 162: { Line 163: var
> row = database.QuerySingle("select Suburb, State from
> SuburbsPostCodesAndStates where Suburb = @0", item); Line
> 164: if(row != null) Line 165: {
>
源文件: C:\ HostingSpaces \ jpezzime \ mysite.com \ wwwroot的\ App_Code文件\ JTSi.cs 行:163
堆栈追踪:
[ArgumentException:不支持关键字:'文件访问重试 超时”。]
System.Data.SqlServerCe.SqlCeConnectionStringBuilder.GetIndex(字符串 关键字)+198
System.Data.SqlServerCe.SqlCeConnectionStringBuilder.set_Item(字符串 关键字,对象值)+31
System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(字符串 价值)+185
System.Data.SqlServerCe.SqlCeConnectionStringBuilder..ctor(字符串 connectionString)+181
System.Data.SqlServerCe.SqlCeConnection.set_ConnectionString(字符串 价值)+241
WebMatrix.Data.DbProviderFactoryWrapper.CreateConnection(字符串 connectionString)+96
WebMatrix.Data<> C_ DisplayClass15.b _14() +16 WebMatrix.Data.Database.get_Connection()+19 WebMatrix.Data.Database.EnsureConnectionOpen()+ 13
WebMatrix.Data.d__0.MoveNext()+72
C:\ HostingSpaces \ jpezzime \ mysite.com \ wwwroot \ App_Code \ JTSi.cs中的System.Linq.Enumerable.FirstOrDefault(IEnumerable1 source) +4232212
1项):163 ASP._Page_Shared_Pages_Search_cshtml.Execute()in C:\ HostingSpaces \ jpezzime \ mysite.com \ wwwroot的\共享\页数\ Search.cshtml:17 System.Web.WebPages.WebPageBase.ExecutePageHierarchy()+208
WebMatrix.Data.Database.QuerySingle(String commandText, Object[] args) +98 JTSi.FindSetAndRemoveLocation(List
System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 执行者)+68 System.Web.WebPages.WebPage.ExecutePageHierarchy() +123 System.Web.WebPages.StartPage.RunPage()+19 System.Web.WebPages.StartPage.ExecutePageHierarchy()+67
System.Web.WebPages.StartPage.RunPage()+19
System.Web.WebPages.StartPage.ExecutePageHierarchy()+67
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext,TextWriter writer,WebPageRenderingBase startPage)+78
System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal(HttpContextBase httpContext)+121----------------------------------------------- ---------------------------------版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.272
有人可以帮忙解释一下吗?我完全不知道一个网站如何在几分钟内完全搞砸,完全搞砸了 - 当我甚至没有做出任何改变时!
答案 0 :(得分:1)
解决方案:
取代:
var database = Database.Open("MYDB");
使用:
var database = Database.OpenConnectionString("Data Source=|DataDirectory|\\MYDB.sdf", "System.Data.SqlServerCe.4.0");
答案 1 :(得分:1)
连接字符串存在问题 - “File Access Retry Timeout”是一个新关键字,已添加到较新版本的SQL Compact中。您可能正在服务器上运行它的旧版本。