在 ASP.NET 服务器上定位 .sdf 文件时出错

Posted

技术标签:

【中文标题】在 ASP.NET 服务器上定位 .sdf 文件时出错【英文标题】:error while locating .sdf file on ASP.NET server 【发布时间】:2010-10-22 05:21:00 【问题描述】:

我已经完成了一个 Web 项目(使用 C# + SQL CE + ASP.NET),它对 .sdf 文件进行了很少的操作,结果通过 ASP.net 页面显示。当我开始工作时,我硬编码了连接字符串的路径并在我的系统中工作。现在我希望这个数据库驻留在我的服务器页面中。

我如何获得工作目录(本地主机)所以 我可以把它联系起来 字符串?

我尝试过使用

System.Environment.CommandLine 但它给我一个错误提示

"Format of the initialization string does not conform to specification starting at index 98." The outcome of System.Environment.CommandLine is

Data Source= "C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0\WebDev.WebServer.EXE" /port:1438 /path:"C:\Documents and Settings\xxx\Desktop\Project\yyy\Deploy\EMSWEB\Back010\WEB\WEB" /vpath:"/WEB"/tEST.sdf;Persist Security Info=True;

知道吗???

【问题讨论】:

在这里查看我的回复:***.com/questions/3223359 【参考方案1】:

看看http://www.connectionstrings.com/sql-server-2005-ce

【讨论】:

nope .. 它确实解决了 ...它指向某个目录。我在桌面测试它,后期将移至服务器【参考方案2】:

只是一个快速的建议:永远不要把它放到真实的环境中。 SQL Server CE 不能用作 Web 应用程序的数据库。它在并发访问时表现不佳。

正如@KBoek 所说,connectionstrings.com 应该涵盖您的任何连接字符串问题。无论是桌面还是服务器,只需正确指定数据库的路径即可。我建议您将 .sdf 文件与其他文件放在同一目录中

并使用类似的东西

Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\MyData.sdf;Persist Security Info=False;

【讨论】:

【参考方案3】:

我终于用

让它工作了
connectionString="data source=|DataDirectory|\test.sdf"

在哪里

 Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\

指向下面这样的某个目录。

C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0\WebDev.WebServer.EXE" /port:1438 /path:"C:\Documents and Settings\xxx\Desktop\Project\yyy\Deploy\EMSWEB\Back010\WEB\WEB" /vpath:"/WEB"/tEST.sdf

【讨论】:

以上是关于在 ASP.NET 服务器上定位 .sdf 文件时出错的主要内容,如果未能解决你的问题,请参考以下文章

打开和创建SqlCe(.sdf文件)

SQL CE 天蓝色连接

在 ASP.NET 中针对 SQL Compact 4.0 执行/查询

VS2005做ASP.NET网站时,不能移动控件怎么办

ASP.NET 路由

非托管 DLL 无法在 ASP.NET 服务器上加载