在ASP.NET服务器上找到.sdf文件时出错

时间:2010-10-22 05:21:00

标签: c# asp.net sql-server-2005 sql-server-ce

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

  

如何获取工作目录(localhost)   我可以把它连接起来   字符串?

我尝试使用

  

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;

任何想法???

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

快速建议:切勿将其置于真实环境中。 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;

答案 2 :(得分:0)

我终于使用

工作了
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