none
C#是不是有BUG?还是.net有BUG? 为什么加密后的视频总是显示增加两次??? RRS feed

  • 问题

  • 我用DRM 10加密了一个视频,现在用C#写了个计数程序,但是计数总是显示增加两次,但是在IE显示很正常.只增加一次数量,难道是那个地方又涮新了一次,但是调试了半天,没看到那个地方有问题?实在搞不明白了.

    protected void Page_Load(object sender, EventArgs e)
        {
            if (Application["counter"] == null)
                Application["counter"] = 0;
            else
                Application["counter"] = (Int32)Application["counter"] + 1;
            Response.Write(Application["counter"].ToString());
        }

    Media Player 10选项:
    打开播放器(Windows Media Player)-->工具-->选项-->隐私-->自动获取受保护内容的许可证,如果选择,会增加两次数量。

    Media Player 11的选项为:
    “播放或同步文件时自动下载使用权利”

    打开播放器(Windows Media Player 11)-->工具-->选项-->隐私-->播放或同步文件时自动下载使用权利,如果选择,也会增加权两次数量。


    2009年5月14日 6:05

答案

全部回复

  • 页面被调用了两次,当然会记再次数咯, 你可以尝试在Session_Start事件中写,或者通过 IP 来判断是否是同一用户等方法
    知识改变命运,奋斗成就人生!
    2009年5月14日 6:45
    版主
  • 也可能是Media Player本身就是读取2次了。,


    【孟子E章】
    2009年5月14日 7:06
    版主
  • 也可能是Media Player本身就是读取2次了。,


    【孟子E章】

    如果不选择播放器的播放或同步文件时自动下载使用权利,就会增加一次呀.

    打开播放器(Windows Media Player 11)-->工具-->选项-->隐私-->播放或同步文件时自动下载使用权利,如果不选择,就只增加一次数量。

    2009年5月14日 7:11
  • 页面被调用了两次,当然会记再次数咯, 你可以尝试在Session_Start事件中写,或者通过 IP 来判断是否是同一用户等方法
    知识改变命运,奋斗成就人生!

    但是我在IE浏览就是一次呀,只是在播放器播放的时候,才显示增加两次呀
    2009年5月14日 7:17
  • 可能是Media Player本身就是读取2次了。显示一次,下载证书一次
    知识改变命运,奋斗成就人生!
    2009年5月14日 7:20
    版主
  • 可能是Media Player本身就是读取2次了。显示一次,下载证书一次
    知识改变命运,奋斗成就人生!

    也不一定呀.如果不选择播放器的自动获取受保护内容的许可证,就可以读取一次.显示和下载证书都是一次完成的,这又是什么原因?难道这不是.net的BUG吗? 那用ASP的范例就没有这个问题?
    2009年5月14日 7:34
  • 你的是asp.net的什么版本?
    贴一下你的aspx的内容和cs内容

    与数据库相关的内容可以去掉,只是想看一下你的属性设置和执行流程
    【孟子E章】
    2009年5月14日 11:59
    版主
  • 你的是asp.net的什么版本?
    贴一下你的aspx的内容和cs内容

    与数据库相关的内容可以去掉,只是想看一下你的属性设置和执行流程
    【孟子E章】


    我用的是Visual 2005,难道和版本有关系?我没有连接数据库,就是一个简单的计数程序,请指教.

    //////////////////////////////////////////////////////////////////////////////////////////////////
    Default.aspx
    //////////////////////////////////////////////////////////////////////////////////////////////////
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
       
        </div>
        </form>
    </body>
    </html>

    //////////////////////////////////////////////////////////////////////////////////////////////////
    Default.aspx.cs
    //////////////////////////////////////////////////////////////////////////////////////////////////
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Application["counter"] == null)
                Application["counter"] = 0;
            else
                Application["counter"] = (Int32)Application["counter"] + 1;
            Response.Write(Application["counter"].ToString());
        }
    }

    2009年5月15日 1:18
  • 代码没有什么问题,
    你试试
    Application.Lock();
    Application["counter"] = (Int32)Application["counter"] + 1;
    Application.UnLock();

    看看。
    【孟子E章】
    2009年5月15日 3:24
    版主