所以我在澳大利亚托管的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请求之前调整图像大小,则会减少。
任何想法可能会出错?这个问题困扰了我好几个月,没有谷歌搜索的数量。