尝试在 .net core web api 上运行 ASE sql (sybase) 时出错“不允许发送或接收数据的请求......”
Posted
技术标签:
【中文标题】尝试在 .net core web api 上运行 ASE sql (sybase) 时出错“不允许发送或接收数据的请求......”【英文标题】:Error trying to run ASE sql (sybase) on .net core web api "A request to send or receive data was disallowed ..." 【发布时间】:2021-04-10 10:39:41 【问题描述】:当我运行这个 SQL 时,我得到了这个错误
这是我运行的第二个 SQL,但我尝试运行第一个 SQL,它运行了两次并连续运行,它运行良好,所以可能不是开放连接问题?
发送或接收数据的请求被拒绝,因为套接字未连接并且(当使用发送调用在数据报套接字上发送时)没有提供地址。
上次我在非常相似的代码中遇到该错误,是因为我在 args 部分的变量名中留下了“@”。
所以我强烈怀疑这是“您的 SQL 调用代码以某种方式搞砸了”或“返回 0 行”的一般错误(伙计,我希望不是后者)
public List<EnrTypeSepInfoCV> GetEnrTypeSepInfo(long enrId)
var aseSqlConnectionString = configuration.GetConnectionString("SybaseDBDapper");
string sql = "";
sql += "select et.enrtype_id, ";
sql += " et.active as stud_status, ";
sql += " s.sep_dt ";
sql += "from enrollment_type et,separation s ";
sql += "where et.enrtype_id *= s.enrtype_id ";
sql += "and et.enr_id = @al_enr_id ";
dapperTools.DapperCustomMapping<EnrTypeSepInfoCV>();
try
using (IDbConnection db = new AseConnection(aseSqlConnectionString))
var arguments = new
@al_enr_id = enrId
;
List<EnrTypeSepInfoCV> ll = new List<EnrTypeSepInfoCV>();
ll = db.Query<EnrTypeSepInfoCV>(sql, arguments).ToList();
return ll;
catch (Exception ex)
Trace.WriteLine(ex.ToString());
return null;
如果我拉出 SQL,用传入的值替换变量,一切正常。
我逐行查看,将其与有效的 SQL 调用方法进行比较,我看不出有任何差异。 有谁知道我做错了什么?
有没有办法在这种情况下获得更多信息错误?
如果重要的话,我正在编写一个 .Net Core Web API 服务,供针对 Sybase DB v12.* 运行的 Vue 应用使用。
我还有其他 API 方法可以正常工作,它们以相同的方式调用数据库。
这是我的数据对象
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace SpProofOfConceptAPI.Dto
public class EnrTypeSepInfoCV
[Dapper.Column("enrtype_id")]
public Int64 EnrTypeId get; set;
[Dapper.Column("stud_status")]
public string StudStatus get; set;
[Dapper.Column("sep_dt")]
public DateTime? SepDt get; set;
【问题讨论】:
【参考方案1】:好的,
因此,此消息似乎是一般的“连接出现问题”消息。
就我而言,这是连接超时到期。默认是 15s,我把它改成 600s,它工作正常。 (我们有一些长期运行的报告可能需要很长时间)
由于它在 ASE 上,我只是添加了“连接超时 = 600;”。
【讨论】:
以上是关于尝试在 .net core web api 上运行 ASE sql (sybase) 时出错“不允许发送或接收数据的请求......”的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core Web API DELETE 调用返回 405
基于 .NET Framework 的 .NET Core 2.1 Web API 的授权问题
在 Elastic Beanstalk 上使用 Docker 部署 .NET Core Web API
为 ASP.Net Core Web API 项目创建要在启动时转到的索引页面