首页 > 解决方案 > 在 stimulsoft 上建立与 sql server 的连接时出现与网络相关或特定于实例的错误 错误 26 报告

问题描述

我在我的 asp.net 中使用这个连接字符串

<add name="DB_PersonnelEntities" 
     connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=REGAPP\SQL2014;initial catalog=DB_Personnel;user id=personnel;password=qwe123!;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

以及 StimulSoft 的这段代码

string connectionstring = ConfigurationManager.ConnectionStrings["DB_PersonnelEntities"].ConnectionString;
string serverlocation = HttpContext.Current.Server.MapPath(string.Empty);

StiReport mystireport = new StiReport();
mystireport.Dictionary.Databases.Add(new Stimulsoft.Report.Dictionary.StiSqlDatabase("DB_PersonnelEntities", connectionstring));
mystireport.Load(serverlocation + "\\Report\\RptPersonnel.mrt");
mystireport.Dictionary.Variables["pid"].Value = id.ToString();
StiWebViewer1.Report = mystireport;
mvList.SetActiveView(vwReport);

连接字符串在程序的所有 SQL 连接中都能正常工作,除了 Stimulsoft Report 和上面显示的代码。

注意:此代码和连接适用于我的 PC 上的 StimulSoft SQL 连接和其他 sql 连接并从 Visual Studio 运行,但是当程序在服务器上发布时,StimulSoft SQL 连接显示错误 26。

我像这样更改了连接字符串

<add name="Conn" 
     connectionString="Data Source=REGAPP\SQL2014;Initial Catalog=DB_Personnel;User Id=personnel;Password=qwe123!"   
     providerName="System.Data.SqlClient" />

并更改实例名称/禁用防火墙/检查程序的用户权限。

感谢帮助

标签: asp.netsql-serverstimulsoft

解决方案


您显示的连接字符串是一个实体框架连接字符串,我很确定第三方报告工具将无法使用它。

但是嵌入在 EF 连接字符串中的是一个“原始”ADO.NET 连接字符串 - 你试过吗?

<add name="Report_PersonnelEntities" 
     connectionString="Data Source=REGAPP\SQL2014;Initial Catalog=DB_Personnel;User id=sa;password=qwe123!;MultipleActiveResultSets=True;" 
     providerName="System.Data.SqlClient" />

警告语:通常建议不要使用sa(系统管理员)帐户,该帐户可以在您的服务器上为任何程序化数据库工作执行所有操作 - 特别是不要用于报告!在 SQL Server 中创建您自己的报告用户并使用它来代替全能的系统管理员帐户!


推荐阅读