ASP.NET将图像加载到我的page.aspx导致一些奇怪的错误(有时!)

时间:2016-11-05 17:42:09

标签: asp.net image load photo

正如您可以通过我的标题猜测,我正在从我的数据库(Microsoft SQL Server 2012)加载玩家到我的Players.aspx页面,当然每个玩家都有一张照片..

当我试图加载我的Players.aspx时发生了什么......?奇怪的错误正在一个接一个地发生,这真的很奇怪。

我会更详细地解释一下:

我同时加载100个玩家(仍然没有分页),这意味着我一次将100张照片加载到我的页面,所以我想我会阻止我的页面,这会导致问题,然后我改变了我的存储过程将我玩家从数据库返回到Select TOP (10)所以我减少了应该加载到我的页面中的玩家数量,但问题一遍又一遍地重复,当我评论我所在的部分时得到图像,一切都运作良好,所以我真的不明白为什么会发生这种情况,以及为什么我的应用程序在我的图像加载其余属性时不断破解......

而且我不得不说每次都不会发生问题,例如我运行应用程序 - 击中F5 - DEBUG,一切都很好,我再做一次,繁荣热潮,等等......

这是我的代码 - Players.aspx -code页面,我正在为我的玩家加载照片。

  public partial class Players : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            this.Form.DefaultButton = this.btnsearch.UniqueID;

            if (!IsPostBack)
            {

                var currentClub = System.Web.HttpContext.Current.User.Identity.Name;
                var currentClubID = System.Web.HttpContext.Current.User.Identity;

                if (SecurityServices.IsAuthorized(currentClub) == true)
                {
                    repeaterPlayers.DataSource = DAPlayers.SelectTop10Players(); //Before it was SelectALL()
                    repeaterPlayers.DataBind();
                }
                else
                {
                    var club = DAPlayers.GetClubByName(currentClub);
                    repeaterPlayers.DataSource = DAPlayers.SelectPlayersByClubID(club.ClubID);
                    repeaterPlayers.DataBind();
                }
            }
        }
        catch
        {

        }


    }

这里是Players.aspx

  <table class="table table-hover" style="margin-top: 50px; background-color: white;">
    <tr>
        <th>FirstName</th>
        <th>LastName</th>
        <th>Photo</th>
    </tr>
    <asp:Repeater ID="repeaterPlayers" runat="server" OnItemCommand="repeaterPlayers_ItemCommand">
        <ItemTemplate>
            <tr>
                <td><%# Eval("FirstName") %></td>
                <td><%# Eval("LastName") %></td>
                <td>
                    <asp:Image ID="imageTest" runat="server" style="width: 60px; height: 30px;" ImageUrl='<%#"~/ImageHandler.ashx?id="+Eval("PlayerID") %>' 
                </td>
            </tr>
        </ItemTemplate>
    </asp:Repeater>
</table>

正如我所说,如果我评论这部分,一切都会好起来的!我永远不会遇到任何错误!:(下面的代码,关于图片加载)

 <asp:Image ID="imageTest" runat="server" style="width: 60px; height: 30px;" ImageUrl='<%#"~/ImageHandler.ashx?id="+Eval("PlayerID") %>' 

这是我的ImageHandler.ashx代码:

public class ImageHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {

        int playerID = Convert.ToInt32(context.Request["id"]);
        Player newPlayer =DAPlayers.GetByPlayerID(playerID);
        context.Response.ContentType = "image/jpeg";
        context.Response.BinaryWrite(newPlayer.Photo);
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

以下是我从数据库加载图片时遇到的问题:

enter image description here

enter image description here

enter image description here

enter image description here

我必须再说一遍,每次我试图将我的玩家加载到Players.aspx页面时都不会发生这种情况,但这种情况经常发生!

代码非常简单,所以我无法弄清楚为什么会发生这种情况,我们正在谈论数据库中的900个图像,但这不是我猜的原因,因为我尝试使用TOP 10 ALSO ....: ))

谢谢你们 欢呼声

0 个答案:

没有答案