簡體   English   中英

嘗試在 .net 核心 web Z8A5DA52ED1264427D358E70C0 上運行 ASE sql (sybase) 時出錯

[英]Error trying to run ASE sql (sybase) on .net core web api “A request to send or receive data was disallowed …”

當我運行此 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 方法正常工作,以相同的方式調用數據庫。

這是我的數據 object

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; }
    }
}

好的,

因此,此消息似乎是通用的“連接出現問題”消息。

就我而言,這是連接超時到期。 默認是 15s,我把它改成 600s,它工作正常。 (我們有一些長期運行的報告可能需要很長時間)

因為它在 ASE 上,所以我只添加了“連接超時 = 600;”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM