小编Mar*_*ker的帖子

9
推荐指数
2
解决办法
7354
查看次数

ASP.Net中线程敏捷性的含义是什么?

我正在阅读一篇关于HttpContext和CallContext的文章,看看线程敏捷性.这是什么意思?

c# asp.net httpcontext threadpool

9
推荐指数
1
解决办法
2806
查看次数

删除更改集或缩小Mercurial存储库

如何通过删除旧的更改集来缩小mercurial存储库?

mercurial

8
推荐指数
2
解决办法
2501
查看次数

允许双URL编码的请求路径有效

我有一个标准的ASP.Net WebForms应用程序在IIS 7.0上运行,带有集成管理管道.我们网站上的许多图像都有文件名中的空格(例如'./baseball drawing.gif').当我们将这些图像放入我们的html页面时,我们会对路径进行编码,以便我们的html img标签看起来像这样<img src='./baseball%20drawing.gif' />

现在,当某些搜索引擎和webcrawler尝试索引我们的网站时,问题就出现了.当他们刮擦我们的页面时,他们将html编码我们已经html编码的路径获取像这样的图像链接'./baseball%2520drawing.gif',其中%25是'%'的url编码.这会导致两个问题:

  1. 当用户从这些搜索引擎获得结果时,他们会收到断开的链接
  2. 当用户尝试导航到这些损坏的链接时,它会在我们的系统中引发错误.

你可以看到这是一个失败的局面.用户得到断开的链接,我们的错误日志中会出现噪音.

我一直试图找出如何纠正这个问题没有运气.这是我尝试过的:

  1. <requestFiltering allowDoubleEscaping='true'>在web.config中设置以防止"404.11 URL Double Escaped error".这修复了第一个错误但导致了一个新错误,"发现了一个潜在危险的Request.Path".
  2. 从中删除'%' <httpRuntime requestPathInvalidChars>以防止"潜在危险的Request.Path"错误.这修复了第二个错误,但现在我们有第三个错误,"无法找到资源".
  3. 我在我的代码中休息了一下Request.Path.看起来它的值是'Ball Image.gif'而不是'Ball%2520Image.gif'.在这种情况下,我不确定它为什么不起作用.

我觉得我有一个超级黑客,我必须禁用一切,而不是真正理解为什么没有任何工作.所以我想我的问题是三折

  1. 为什么解决方案尝试1不解决问题?
  2. 为什么解决方案2没有解决问题?
  3. 为什么我的Request.Path在步骤3中看起来正确但它仍然不起作用?

任何人都可以提供任何帮助将不胜感激.

asp.net validation iis-7 urlencode

8
推荐指数
1
解决办法
7250
查看次数

在运行时动态绑定到自定义业务对象

我正在开发一个Web窗体项目,它将Sql查询的结果加载到DataTable中.

这些DataTable被传递到前端,我们将它们绑定到Repeater Web控件.

这非常有效.但是,现在我们想绑定到我们自己的自定义类而不是DataTable.不幸的是,我认为明显的答案是行不通的(IDictionary<string, object>在我们班上实施).

我们需要将Eval绑定到Datum而不为每个绑定创建具体属性?显然,DataRow不必具体实现我们绑定的每个属性.所以,不知何故,似乎Eval能够在DataRow上按名称查找属性值.

这是自定义类

public class Datum: IDictionary<string, object>
{
    private Dictionary<string, object> _entries;

    public Datum()
    {
        _entries = new Dictionary<string, object>();
    }

    public object this[string s]
    {
        get
        {
            return this._entries[s];
        }
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

这是在aspx.cs文件中设置DataSource的位置

rptTags.DataSource = new[] { new Datum { {"Count", 1} }, new Datum { {"Count", 2 } };
Run Code Online (Sandbox Code Playgroud)

这是aspx文件中的绑定

<asp:Repeater ID="rptTags" runat="server">
    <ItemTemplate>
        <%# (int)Eval("Count") > 
    </ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

使用上面的示例,我们得到一个错误,指出有问题的属性不存在,这是真的,但它也不存在于DataRow上.如何使它像System.Data.DataRow一样绑定?

c# asp.net data-binding webforms

6
推荐指数
1
解决办法
910
查看次数

十进制三元不工作

我正在尝试使用三元组来指定小数类型.它不适合我.我疯了吗?

这是我的调试的屏幕截图.在我迈步之前你可以看到一切的价值. 在此输入图像描述

在我走到这里之后是价值.它甚至不是可行的选择之一(即1或2000). 在此输入图像描述

是否有一些奇怪的小数限制,我不知道?当我将其分解为完整的if/else逻辑表示时,它可以正常工作.我唯一可以猜到的是我最近安装了.NET Framework 4.5.

UPDATE

我已经清理了解决方案,并确保我按照评论中的建议运行在调试模式下编译的代码.这些似乎都没有改变任何东西.

当我注意到我的所有单元测试仍在通过时,我开始变得好奇.经过一段时间的调查,我发现当我再次踏上一段时间(即跳过memberItems.Add)时,价格神奇地具有正确的价值.

.Net是否会对迭代器块中的yield命令执行类似于三元运算符的延迟解析?我以前从未注意到它,但我不知道它还能是什么.我想我仍然可能会在发布模式下意外运行代码.经过三次检查后,我犯了笨拙的错误.

c#

6
推荐指数
1
解决办法
323
查看次数

HTTPModules和Global.asax - ASP.NET页面生命周期

我已经阅读了有关Asp.Net Page生命周期http://www.codeproject.com/Articles/73728/ASP-NET-Application-and-Page-Life-Cycle的精彩文章.

我的理解是请求通过MODULE(BeginRequest,authentica,author,prehandler ...)HANDLER(Proccessrequest)PAGE(Init,viewstate,load,render,......,unload)MODULE(Posthandler,postrequescache,Endreques) ).

Global.asax(Application_start,Application_begin,....)究竟在上面的流程中出现了什么?对此的清晰度确实会有所帮助

Init函数是第一个调用还是Global.asax函数?

谢谢你宝贵的时间.

asp.net httphandler httpmodule global-asax

6
推荐指数
1
解决办法
8561
查看次数

R中的预测和预测函数之间的区别

predict()R中的和函数有什么区别吗forecast()

如果是,在哪些具体情况下应该使用它们?

r function predict

6
推荐指数
1
解决办法
8092
查看次数

使用Server.Transfer时是否再次执行整个Asp.Net生命周期?

我知道Server.Transfer不会回程到请求客户端.

我无法学到的是,控制是否只是直接传递给您要传输的新请求处理程序,或者是否或者是否再次执行整个请求生命周期.

我假设使用传输URL再次执行整个生命周期,但想验证是这种情况.

c# asp.net

5
推荐指数
1
解决办法
973
查看次数

asp.net页面生命周期

Asp.net Page Life Cycle的最佳教程是什么?

asp.net

4
推荐指数
1
解决办法
677
查看次数

你怎么知道PayPal购物车什么时候被放弃了?

我使用PayPal网站付款标准接受在线商店的付款.目前,当客户被发送到PayPal时,我们假设他们的订单被放弃,直到我们从PayPal获得IPN响应,告诉我们不同.

通过PayPal的IPN文档,看起来似乎没有废弃购物车的通知.我能想到的唯一另一种方法是将订单初始标记为待处理,然后提供某种服务,定期运行以将旧的未完成订单标记为已放弃.

有一个更好的方法吗?是否记录了付款请求的最长到期时间?

c# asp.net paypal paypal-ipn

4
推荐指数
1
解决办法
985
查看次数

为什么XmlReader上的默认编码与XmlTextReader的默认编码不同?

我有一个ACII编码的XML文件.

我尝试使用两种不同的Microsoft XmlReader实现来阅读它:

  1. XmlReader.Create(new StreamReader(fileImport.FileContent, true));
  2. new XmlTextReader(fileImport.FileContent)

第一个,XmlReader.Create,它使用StreamReader进行编码,效果很好.

第二个是新的XmlTextReader,它会抛出一个XmlException,并在给定的编码中使用Message'Invalid character'.

如果你阅读这两个文件的MSDN文档,他们都应该从字节顺序标记检测编码,如果失败则回退到UTF-8.

XmlTextReader[MSDN] XmlTextReader.Encoding属性

StreamReader[MSDN] StreamReader构造函数

那么,为什么XmlTextReader失败,使用无效编码,而StreamReader没有,当文档说两个实现默认情况下,处理相同的编码?

c# xml character-encoding

4
推荐指数
1
解决办法
1788
查看次数