小编THX*_*138的帖子

C#:重定向控制台应用程序输出:如何刷新输出?

我正在产生外部控制台应用程序并使用异步输出重定向.
如此SO帖子所示

我的问题是,在得到OutputDataReceived事件通知之前,生成的进程似乎需要产生一定量的输出.

我想尽快收到OutputDataReceived事件.

我有一个简单的重定向应用程序,这里有一些观察:
1.当我调用一个简单的'while(true)print("X");' 控制台应用程序(C#)我立即收到输出事件.2.当我调用3d派对应用程序时,我试图从命令行行,我看到逐行输出.
3.当我从裸骨包装器中调用该3d派对应用程序时(参见1) - 输出以块(约一页大小)的形式出现.

该应用内部会发生什么?

仅供参考:有问题的应用程序是"USBee DX数据Exctarctor(异步总线)v1.0".

c# console external-process output-redirect

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

ASP.NET MVC:奇怪的POST行为

ASP.NET MVC 2 应用程序

我的控制器上有两个动作(Toons):

  1. [GET]列表
  2. [POST]添加

应用程序正在IIS7集成模式下运行,因此/ Toons/List工作正常.但是当我执行POST(内部重定向到/ Toons/List)时,它会重定向(使用302 Object Moved)返回/ Toons/Add.

如果我使用.aspx hack(在IIS6/IIS7经典模式下工作),问题就会消失.

但是如果没有.aspx - GET工作正常,但POST会将我重定向到自己,但使用GET.

我错过了什么?

我正在使用webhost4life.com托管,他们确实已经将IIS7更改为集成模式.

编辑:代码使用UltiDev Cassini服务器按预期工作.

编辑:事实证明,这是一个trash-in-URL问题.如果最后没有斜杠,IIS7会以某种方式正确路由请求.

EDET:行为的说明
当我请求(POST)/Toons/List(没有斜杠)时,IIS没有找到处理程序(我不知道IIS究竟是如何处理URL到处理程序的映射)并重定向请求(使用302代码)/Toons/List/(注意尾随斜杠).

根据HTTP规范,浏览器必须使用相同的方法(在这种情况下为POST)重定向请求,而是处理302,就好像它是303并发出对新URL的GET请求.

这是不正确的,但大多数浏览器的已知行为.

解决方案是使用.aspx-hack使IIS明确地将请求映射到ASP.NET处理程序,或者使用ASP.NET处理程序将IIS配置为处理虚拟目录中的所有内容.

问:有什么更好的方法来处理这个问题?

asp.net-mvc redirect asp.net-mvc-routing asp.net-mvc-2

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

ELMAH:在错误报告中包含POST请求参数

我希望请求中传递的POST参数包含在错误报告中.

post elmah http

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

sql:DELETE + INSERT vs UPDATE + INSERT

有人问过类似的问题,但由于它总是取决于我,所以我要分别询问我的具体情况.

我有一个网站页面,显示来自数据库的一些数据,并从该数据库生成数据,我必须做一些相当复杂的多连接查询.

数据每天更新一次(每晚).

我想预先生成所述视图的数据,以加快页面访问速度.

为此,我正在创建一个包含我需要的确切数据的表.

问题:对于我的情况,完成表格擦除然后插入是否合理?或者我应该更新,插入?

SQL明智的看起来像DELETE + INSERT会更容易(INSERT部分是单个SQL表达式).

编辑: RDBMS:MS SQL Server 2008 Ent

sql t-sql sql-server-2008

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

在URI中转义+(加号)

当用户在我的网站上输入电子邮件时,我会发送包含链接的电子邮件验证电子邮件.链接看起来像:

http://mysite.com/VerifyEmail?email=name@domain.com&token=12341234

此特定用户的电子邮件包含"+"(加号),因此链接如下所示:

http://mysite.com/VerifyEmail?email=foo+bar@domain.com&token=12341234

单击链接时(至少在Firefox中)加上替换为空格.

问题:我在.net中使用什么URL编码功能来逃避加号.

注意:Uri.EscapeUriString(email)叶子加完整.

.net urlencode url-encoding

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

jQuery:包装新创建的html

我即时创建HTML代码段:

$('<span/>').addClass(spanClass)
Run Code Online (Sandbox Code Playgroud)

是否有一种jQuery方法将此代码包装进去<div>

在语义上我想做:

$('<span/>').addClass(spanClass).wrap($('<div/>').addClass(divClass))
Run Code Online (Sandbox Code Playgroud)

这不起作用.所以我只想要遵循jQuery-idiomatic版本:

function wrap(what, with) { return $(with).append(what); }
Run Code Online (Sandbox Code Playgroud)

jquery html-manipulation

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

在ASP.NET MVC中未调用WebClient异步回调

在GET请求我运行(类似):

public ActionResult Index(void) {
    webClient.DownloadStringComplete += onComplete;
    webClient.DownloadStringAsync(...);
    return null;
}
Run Code Online (Sandbox Code Playgroud)

我发现onCompleteIndex()完成执行之后才会调用它.我可以看到,onComplete在与Index执行的线程不同的线程上调用它.

问题:为什么会发生这种情况?为什么webClient的异步线程显然被阻塞,直到请求处理线程完成?

有没有办法解决这个问题,而无需启动新线程ThreadPool(我试过这个,并且使用线程池确实按预期工作.如果从ThreadPool的线程调用DownloadStringAsync,webClient的回调也会按预期发生).

ASP.NET MVC 3.0,.NET 4.0,MS Cassini开发Web服务器(VS 2010)

编辑:这是一个完整的代码:

public class HomeController : Controller {
    private static ManualResetEvent done;

    public ActionResult Index() {
        return Content(DownloadString() ? "success" : "failure");
    }

    private static bool DownloadString() {
        try {
            done = new ManualResetEvent(false);
            var wc = new WebClient();
            wc.DownloadStringCompleted += (sender, args) => { 
                // this breakpoint …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc multithreading

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

GCC 内联汇编:让编译器决定将哪个寄存器用于临时值

我需要加载 18h 并将其输出到端口 60h,以下工作(在 asm("") 内)。

ldi r1, 0x18 ; 0x18 -> r1
sts 0x60, r1 ; output r1 -> 0x60
Run Code Online (Sandbox Code Playgroud)

我不在乎寄存器 r1 或其他任何用于此目的。有没有一种简单的方法让编译器决定使用哪个寄存器?

我可以使用外部 r/w 变量,但它会产生一些不必要的开销:

register uint8_t tmp;
asm volatile (
    "ldi %[tmp], 0x18 \n\t"
    "sts 0x60, %[tmp]"
    : [tmp] "=r"(tmp) :);
Run Code Online (Sandbox Code Playgroud)

这是用于 AVR atmega(8 位)处理器。使用 GCC 4.3.2

gcc avr inline-assembly avr-gcc

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

如何范围C#视图模型

我有一个显示人员列表的视图.对于所述视图,我创建了一个PersonListViewModel

class PersonListViewModel { 
    public IEnumerable<Person> People {get;set;}
    public int TotalPersonCount {get;set;}
    public int PeoplePerPage {get;set;}
    public string OrganizationName {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我的问题是关于Person上课.应该在哪里Person定义类?我应该怎么称呼它?

此问题是在有界上下文或层之间映射类型的更一般问题的实例.我知道我可以使用AutoMapper等来完成这项工作,但AutoMapper只能解决问题但却无法解决问题.

这里有一些我考虑过的优点和缺点:

将两个PersonListViewModelPerson类放在同一名称空间中,例如Whatever.Organization.ViewModels.

Pro:Person类名显示它是什么 - 一个人,以及该类绑定由namespace命名的上下文.Con:在我构建此Person实例的演示者中(很可能)会与Person业务域空间中的类发生冲突,因此我必须为其中一个实例添加前缀.Con:必须添加一个名称空间来包含视图模型(不一定是个问题,因为您可能已经拥有了视图模型的命名空间).

PersonPersonListViewModel课堂上筑巢. Pro:可以Person为不同的视图模型提供多个类.Pro:Person自然是作为它所属的视图模型的范围.Con:无法Person在视图和视图模型之间重用.Inb4:我确实认为ViewModels不会被重用,我相信它会在适当的时候在表示层中重用非viewmodel对象定义.这种方法不允许这样的重用,并且在有必要的情况下有5% - 我不想创建不同的模式.

使用*ViewModel Pro对每个表示层对象进行后缀:解决了重用和名称冲突的问题.Con:没有意义,因为Person它只是一个视图模型,当它包含一个视图的数据时,可能会或可能不是这种情况 - 例如,如果将person实例赋予[sub]视图 - 那么,从技术上讲,它将是视图模型,但如果它被用作属性上PersonListViewModel然后Person是不是一个视图模型(不超过intTotalPersonCount是一个视图模型,这是不).

到目前为止,我没有一个让我开心的解决方案.但解决方案#1似乎是最正确的(从理论上讲),我仍然希望建议一个更好的解决方案.

c# oop asp.net-mvc

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

jquery验证:如果焦点丢失到提交按钮,如何防止模糊(焦点)验证

我有一个文本框.如果在文本框中输入无效值后单击提交按钮,我不希望验证模糊.

如果我模糊到任何其他控件 - 那么我确实希望验证发生.

Windows [桌面]表单允许将控件指定为" no-causing-validation"以用于此精确情况.

是否可以no-cause-validation在jquery验证中将控件指定为" "?

jquery jquery-validate

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