我在使用asp.net网站主机上嵌入的firebird时遇到了问题。
一切都在本地工作正常,但在网络上我有一个例外
System.Data.Entity.Core.EntityException:底层提供程序在Open上失败。 ---> FirebirdSql.Data.FirebirdClient.FbException:无法创建目录" C:\ ProgramData \ firebird \"。 OS errno是5 ---> FirebirdSql.Data.Common.IscException:无法创建目录" C:\ ProgramData \ firebird \"。 OS errno是5
我做了什么: - 复制fbembed.dll及其在Bin文件夹中的依赖关系 - 复制firebird配置文件并将根变量更改为absolue Bin路径 - 将我的数据库复制到app_data文件夹
我也像这样动态构建我的连接字符串
string p = "metadata=res://*/MyFBEmbedModel.csdl|res://*/MyFBEmbedModel.ssdl|res://*/MyFBEmbedModel.msl;provider=FirebirdSql.Data.FirebirdClient;provider connection string='client library=??fbembed??;initial catalog=|DataDirectory|D2015.gdb;user id=sysdba;password=masterkey;Connection lifetime = 0; Pooling = true; MinPoolSize = 0; MaxPoolSize = 500; Packet Size = 8192; ServerType = 1'";
string mslinepath = HttpContext.Current.Server.MapPath("Default.aspx");
mslinepath = Path.GetDirectoryName(mslinepath);
p = p.Replace("??fbembed??", mslinepath + @"\Bin\fbembed.dll");
context = new MyFBEntities(p);
任何帮助都非常受欢迎
答案 0 :(得分:0)
对于参考错误,编号5是拒绝访问。 Firebird写锁 数据库的文件到C:\ ProgramData \ firebird但它不能 创建文件夹(你没有足够的权利)。
要重定向锁定文件,您需要设置环境变量
R.txt
到您可以写的位置。
我也在Firebird支持邮件列表上发布了这个答案。