在远程计算机上运行ASP.NET服务器时,Kestrel ASP.NET需要很长时间才能在本地服务器上托管照片

时间:2018-04-10 07:33:00

标签: sql-server asp.net-core kestrel-http-server

嘿,大家好希望这个头衔太糟糕了,很难简洁地描述。

所以我在澳大利亚托管的VPS上运行了一个ASP.net核心2.0服务器(通过Kestrel)(我在新西兰,对服务器的延迟约为50毫秒)。 HTTP Get操作导致ASP.net服务器上的以下代码运行,我在其中查询SQL服务器(也在vps上运行)并返回结果:

public async Task<string> GetTopContactPhoto(int contactUID)
    {
        // Open connection if not already open
        if (conn.State != System.Data.ConnectionState.Open) { conn.Open(); }

        // Get number of rows
        string sqlRequest = string.Format("select top 1 imageData from IMAGES where contactUID=@contactID;");

        // Return value
        using (SqlCommand cmd = new SqlCommand(sqlRequest, conn))
        {
            cmd.Parameters.AddWithValue("@contactID", contactUID);
            return Convert.ToBase64String((byte[])await cmd.ExecuteScalarAsync());
        }
    }

现在整个过程从HTTP Get请求开始到给定结果的时间约为5-6秒,图像大小约为2MB。

但事实上,当我在我的开发PC上编译和运行ASP.Net核心服务器时,在一个单独的大陆上一共到VPS(仍在运行SQL服务器),整个过程只需要〜 2秒,如果我在响应Get请求之前调整图像大小,则会减少。

任何想法可能会出错?这个问题困扰了我好几个月,没有谷歌搜索的数量。

0 个答案:

没有答案