0

查看访问我的数据库的页面时,我不断收到不支持的关键字:“文件访问重试超时”错误。

所以我假设它无法访问数据库。就在几分钟前,当我查看我的主页时,我遇到了同样的问题。我改变了(在我的 _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 文件中进行上述更改之前:

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

不支持关键字:“文件访问重试超时”。说明:执行当前 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
系统。 Data.Common.DbConnectionStringBuilder.set_ConnectionString(字符串值)+185
System.Data.SqlServerCe.SqlCeConnectionStringBuilder..ctor(字符串 connectionString) +181
System.Data.SqlServerCe.SqlCeConnection.set_ConnectionString(字符串值)+241
WebMatrix.Data.DbProviderFactoryWrapper。 CreateConnection(String 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
System.Linq.Enumerable.FirstOrDefault(IEnumerable 1 项)在 c:\HostingSpaces\jpezzime\mysite.com\wwwroot\App_Code\JTSi.cs:163 ASP._Page_Shared_Pages_Search_cshtml.Execute() 在 c:\HostingSpaces\jpezzime\mysite.com\wwwroot\Shared\Pages\Search.cshtml 中: 17 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +208 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() +191 source) +4232212
WebMatrix.Data.Database.QuerySingle(String commandText, Object[] args) +98 JTSi.FindSetAndRemoveLocation(List



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

有人可以帮忙解释一下吗?我完全不知道一个网站是如何在几分钟内从非常棒到完全搞砸的——当时我什至没有做任何改变!

4

2 回答 2

1

解决方案:

代替:

var database = Database.Open("MYDB");

和:

var database = Database.OpenConnectionString("Data Source=|DataDirectory|\\MYDB.sdf", "System.Data.SqlServerCe.4.0");
于 2012-07-02T18:40:41.710 回答
1
于 2012-07-02T18:40:59.683 回答