网站上突然出现的图片会显示403错误,并且无法加载

时间:2019-06-30 16:28:59

标签: c# asp.net plesk shared-hosting

我有一个网站,其中包含一些产品类别页面,这些页面在“数据列表”中的“项目模板”中提供图像。抓取图像,如下所示:

<a href='<%#"/ProductPage.aspx?item="+Eval("Id")+"&cat="+Eval("Cat") %>'</a>
    <asp:Image ID="Image1" class="imageViewer" runat="server" 
        ImageUrl='<%#"../Handlers/getImage.ashx?Id="+Eval("PhotoId") %>' />
</a>

依次调用getImage.ashx处理程序,其外观如下:

public void ProcessRequest(HttpContext context)
{
    Int32 my_Id;
    if (context.Request.QueryString["Id"] != null)
    {
        my_Id = Convert.ToInt32(context.Request.QueryString["Id"]);
        context.Response.ContentType = context.Request.QueryString["Type"];
        Stream strm = ShowEmpImage(my_Id);
        byte[] buffer = new byte[4096];
        int byteSeq = strm.Read(buffer, 0, 4096);
        while (byteSeq > 0)
        {
            context.Response.OutputStream.Write(buffer, 0, byteSeq);
            byteSeq = strm.Read(buffer, 0, 4096);
        }
    }
}

public Stream ShowEmpImage(int my_Id)
{
    string conn = ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString;
    SqlConnection connection = new SqlConnection(conn);
    try {          
        SqlCommand cmd = new SqlCommand("[dbo].[GetImageHandler]", connection);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@Id", my_Id);
        connection.Open();
        object img = cmd.ExecuteScalar();
        connection.Close();
        return new MemoryStream((byte[])img);
    } catch (Exception ex)
    {
        connection.Close();
        return new MemoryStream();
    }
}

当我将图像存储在数据库中时,这一直很好。直到深夜,所有图像突然间断断续续地出现403错误。链接到我的网站和相关页面:https://moneta.ggiww.com/ProductCategories?cat=Special%20Order

我没有更改任何权限,或对此网站没有做任何更改。它在asp.net网站的服务器间共享主机计划中。所有其他站点都在做同一件事。如果您重新加载页面并单击左右,则图像会更改是否加载。我不知道为什么这一切都是突然发生的。我愿意接受所有建议;如果有的话,我什至会重新创建处理程序。 (尽管它总是像我之前所说的那样起作用,但这一切突然开始发生了)

忘记提及这些站点在调试时可以在我的本地环境中正常工作。

在第一条评论中,我尝试将其更改为绝对URL,但仍然存在问题:

<asp:Image ID="Image1" class="imageViewer" runat="server" 
ImageUrl='<%#"https://moneta.ggiww.com/Handlers/getImage.ashx? 
Id="+Eval("PhotoId") %>' />

0 个答案:

没有答案