小编Phi*_*rie的帖子

在.NET窗口应用程序中收集/报告意外错误的最佳方法是什么?

我正在寻找比我们目前处理意外生产错误更好的解决方案,而不需要重新发明轮子.

我们的大量产品是安装在远程站点的WinForm和WPF应用程序.从NullReferenceExceptions到"常规网络错误",不可避免地会发生意外错误.因此,从程序员错误到环境问题.

目前,使用log4net记录所有这些未处理的异常,然后通过电子邮件发回给我们进行分析.但是我们发现,有时这些错误"报告"包含的信息太少,无法识别问题.

在这些报告中,我们需要以下信息:

  1. 应用名称
  2. 应用版本
  3. 工作站
  4. 也许是一个屏幕截图
  5. 例外细节
  6. 操作系统
  7. 可用内存
  8. 运行流程
  9. 等等...

我真的不想通过从头开始开发这个轮子来重新发明轮子.所需的组件:

  1. 错误收集(详情如上所述)
  2. 错误'发件人'(如果数据库或互联网不可用,则需要排队)
  3. 错误数据库
  4. 分析和报告这些错误.例如,10个最常见的错误或超时发生在下午4:00到下午5:00之间.版本x和y之间的错误如何比较?

注意:我们将SmartAssembly视为一种可能的解决方案,但尽管接近它并不能完全满足我们的需求,但我希望能够听到其他开发人员的工作以及是否存在其他替代方案.

编辑:感谢您的答案到目前为止.也许我在原始问题中并不清楚,问题不在于如何捕获所有无法处理的异常,而是如何处理它们以及围绕它们创建报告引擎(分析).

.net c# error-handling reporting

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

是否有适用于SQL Server 2005的数据大小调整工具?

当填充每个表的预测值时,我必须估计数据库的数据大小.它应该至少包括用于数据和索引的大小.

以前在SQL Server 2000中有这样的工具,当提供每个表的记录数量时产生估计的大小(我认为它随SQL 2000资源工具包一起提供).我找不到2000或2005的这个工具:(

我知道sp_spacedused,但这对我不起作用,因为我必须使用值预先填充数据库,并且我可能有许多方案需要计算.

database sql-server database-design sizing

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

我可以从 .NET 运行 DBCC CHECKDB 吗?

我正在编写计划作业来模拟 SQL Express 的 SQL Server 维护计划。(我必须这样做,因为 SQL Express 不存在 SQL Agent 和相关工具)

其中一个步骤是进行数据库完整性检查。用于此的 TSQL 是:

DBCC CHECKDB(N'Northwind')  WITH NO_INFOMSGS
Run Code Online (Sandbox Code Playgroud)

我如何知道在执行此命令期间是否发生错误,在使用 ADO.NET 时是否会抛出异常,或者我是否必须解析命令的文本输出(如果是这样,我在输出中寻找什么)

这很难测试,因为我手头没有损坏的数据库。

.net t-sql sql-server ado.net sql-server-administration

5
推荐指数
2
解决办法
2270
查看次数

PyYAML解析为任意对象

我有以下Python 2.6程序和YAML定义(使用PyYAML):

import yaml

x = yaml.load(
    """
        product:
           name     : 'Product X'
           sku      : 123
           features :
             - size    :  '10x30cm'
               weight  :  '10kg'

         """
    )

print type(x)
print x
Run Code Online (Sandbox Code Playgroud)


这导致以下输出:
<type 'dict'>
{'product': {'sku': 123, 'name': 'Product X', 'features': [{'weight': '10kg', 'size': '10x30cm'}]}}

可以使用来自x?的字段创建对象?

我想要以下内容:

print x.features[0].size
Run Code Online (Sandbox Code Playgroud)

我知道可以从现有的类创建和实例,但这不是我想要的特定场景.

编辑:

  • 更新了关于"强类型对象"的混乱部分.
  • features根据Alex Martelli的建议改变了对索引器的访问权限

python yaml pyyaml

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

如何从C#中的TabPage获取控件?

我有几个TabPages,每个都包含富文本框.如何在选定的选项卡上访问richtechbox?

TabPage selectedTab = tabControl.SelectedTab;
RichTextBox selectedRtb = selectedTab.Controls.Find("rtb", true).First() as RichTextBox;
Run Code Online (Sandbox Code Playgroud)

这是我尝试但没有运气.

添加:

这是使用richtextbox控件添加标签页的方式

TabPage newTab = new TabPage(name);
RichTextBox rtb = new RichTextBox();
rtb.Dock = DockStyle.Fill;
rtb.BorderStyle = BorderStyle.None;
rtb.Text = file.Data;
newTab.Controls.Add(rtb);
tabControl.TabPages.Add(newTab);
tabControl.SelectedTab = newTab;
Run Code Online (Sandbox Code Playgroud)

c# winforms

5
推荐指数
2
解决办法
2万
查看次数

如何映射Entity Framework 5中的标识关系第一个子实体与多个互斥的父实体

我正在使用Entity Framework 5 Code First,我有以下模型:

class Document
{
    public int Id {get;set;}
    public String Name {get;set;}

    public IList<Page> Pages {get;set;}
}

class DocumentTemplate
{
    public int Id {get;set;}
    public String Description {get;set;}
    public String Name {get;set;}

    public IList<Page> Pages {get;set;}
}

class Page
{
    public int Id {get;set;}
    public string Text {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我知道如何映射子实体有1个父项的识别关系.但我想映射Page实体,以便它具有每个父级的标识关系.

此外,父关系是互斥的.特定页面将属于DocumentTemplate或Document,而不是两者.

实体框架5中是否可以进行这种映射?

我不想为Page创建单独的实体,因为它们基本上是相同的,除了父关系.

TIA.

c# relationship entity-framework-5

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

如何在 Azure 中创建匿名函数应用程序?

我想调用URL 中Function App没有任何功能键的Azure

目前,我需要这样称呼它:

http://<myazureapp.com>/api/mfunc?code=3z81ag7IYWjaGdVs/Gi6BcmhROG4WJjGU3voL9UUp2iXEZZ2Vi6r7g==
Run Code Online (Sandbox Code Playgroud)

如果想调用它,就像不带code查询参数一样调用:

http://<myazureapp.com>/api/mfunc
Run Code Online (Sandbox Code Playgroud)

azure azure-functions

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

使用Python通过HTTP下载压缩内容

使用Python下载网页时如何利用HTTP 1.1的压缩?

我目前正在使用内置的urllib模块下载Web内容.阅读文档,我找不到任何确实使用压缩的信息.

它已经内置到urllib中了还是我可以使用另一个库?

python compression gzip http httplib2

3
推荐指数
1
解决办法
638
查看次数

JQuery - $ .when Deferred对象数组的语法

这是我第一次使用,$.when而且我的语法有问题.
我的代码类似于下面的简化示例.它工作(如果我简化时没有引起错误).我的问题是我不知道customerIds数组中包含的许多元素.

var customerIds = new [1, 2, 3];

$.when(
    getCustomerData(customerIds[0]),
    getCustomerData(customerIds[1]),
    getCustomerData(customerIds[2])
).then(function() {
    alert('success');
}).fail(function() {
    alert('error');
});

function getCustomerData(int id) {
    return new $.Deferred(function(defer) {
                    doSomeWork(id, defer);
    }).promise();       
}
Run Code Online (Sandbox Code Playgroud)

我想写下$.when如下声明,但很难获得正确的语法.

$.when(
    getCustomerDataCalls(customerIds),
).then(function() {
    alert('success');
}).fail(function() {
    alert('error');
});
Run Code Online (Sandbox Code Playgroud)

在哪里getCustomerDataCalls实施为:

function getCustomerDataCalls(customerIds) {
    var dfds = [];

    for (var id in customerIds) {
        dfds.push(new $.Deferred(function(defer) {
                                    doSomeWork(id, defer);
                                 }).promise());     
    }

    return dfds;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是我的实施出了问题,我无法解决我出错的地方.我最好的猜测是返回一个Deferreds 数组时出错了

更新:
我在lanzz提到我的设计示例已经返回Deferred之后更新了代码,我更新了我的示例以包含 …

syntax jquery deferred

3
推荐指数
1
解决办法
3062
查看次数

单身替换?

在我的senario中,我有一个全局设置对象,比如GlobalSettings,它有一个静态属性"Current"(单例),并且应该只有一个GlobalSettings实例.

但是......在我的数据模型中,有一个实体"LocalizedContent":

public class LocalizedContent {
     public string Title { get; set; }
     public string Content { get; set; }
     public string CultureName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在构造函数中,我想通过将CultureName设置为系统的默认文化来初始化实例,并且我可以从GlobalSettings.Current.DefaultCultureName获取默认文化名称.

但是,我不想在LocalizedContent类中使用单例属性"GlobalSettings.Current",因为它会导致强耦合.所以我的问题是,在哪里设置这个默认文化名称的正确位置?

提前致谢!

c# singleton

2
推荐指数
1
解决办法
603
查看次数