Firebird嵌入在虚拟主机上

时间:2015-09-18 18:03:27

标签: asp.net firebird

我在使用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);

任何帮助都非常受欢迎

1 个答案:

答案 0 :(得分:0)

对于参考错误,编号5是拒绝访问。 Firebird写锁 数据库的文件到C:\ ProgramData \ firebird但它不能 创建文件夹(你没有足够的权利)。

要重定向锁定文件,您需要设置环境变量 R.txt到您可以写的位置。

另见本讨论: http://firebird.1100200.n4.nabble.com/FB-Tracker-Created-CORE-3197-Firebird-inet-server-consumes-100-CPU-and-hangs-all-connections-td3013382.html

我也在Firebird支持邮件列表上发布了这个答案。