小编cma*_*art的帖子

Asp.net WebAPI:中止(取消)请求

对于初学者来说,这是一个讨论,如果你们中的任何人做过WebAPI控制器中的请求取消(可能也适用于MVC).

我的意思是特别是如下情况:客户端(通常是浏览器)启动请求,导航或更一般,因任何原因中止请求.现在,请求在客户端中止,将不再被考虑.但是在服务器端,请求仍在执行,通常可能会做两件特别有趣的事情:

  • 进行(重)DB查询
  • 对另一项服务进行(重)服务呼叫

最后一切都没有(至少当它至少是一个副作用免费读取操作时).

在这种情况下,有人会处理正在进行的查询/服务呼叫的取消吗?

我所知道的是,a CancellationToken可以在API-Controller中传递(即使我无法使其工作,以便在从客户端中止时真正请求取消).这CancellationToken在理论上将需要向下传递到所有的低层处理的数据库和服务呼叫可能取消.

c# asp.net asp.net-mvc asp.net-web-api

14
推荐指数
1
解决办法
8551
查看次数

iOS:调试无法在XCode中运行

我正在使用XCode 4iOS SDK 4.3. 我的调试工作正常但现在我发现在设置断点时,应用暂停,但XCode不关注编辑器中的行.点击断点时也不会显示绿色箭头.我有一个UINavigationController分配在AppDelegate.当我在didFinishLaunchingWithOptions一切设置断点时按预期工作:

在此输入图像描述

这是当ia断点暂停mapViewController中的应用程序时,这是添加到导航控制器的第一个项目.(没有绿色箭头但应用暂停):

在此输入图像描述

我真的不知道为什么调试在AppDelegate中工作但在此控制器中没有.如果您需要其他信息或截图以帮助我,请告诉我.

更新:

现在它甚至没有工作,也没有AppDelegate改变任何东西.我也可以单步执行这些行,并且可以看到在本地中分配了值,因此可以猜测应用程序当前在代码中的位置.显然一切正常,只是当前执行的行没有标记为应该.

debugging xcode ios

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

Expression/Func重载的编译器错误

截图说明了它.我有截屏中看到的重载.当使用字符串作为第二个参数时,编译器应该确定第一个参数只能是Func而不是表达式.但是编译器抛出一个错误,说"带有语句体的lamda表达式无法转换为表达式树".

为什么编译器无法找出正确的重载?

明确的演员没有帮助.什么工作是当我创建一个类型为Func的局部变量,然后使用它.

使用的框架是FakeItEasy 1.24.0

跆拳道?

编辑:

以下是显示行为的代码:

public static void Main(string[] args)
    {
        //compiler error
        A.CallTo(() => Main(A<string[]>.That.Matches(strings =>
                                                     {
                                                         return true;
                                                     }, "description")));

        //compiles
        Func<string[], bool> predicate = strings =>
                         {
                             return true;
                         };
        A.CallTo(() => Main(A<string[]>.That.Matches(predicate, "description")));

        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)

c# lambda expression compiler-errors fakeiteasy

7
推荐指数
1
解决办法
461
查看次数

使用全局错误处理程序处理 NGXS(角度)中的错误

我想用两种方式处理 NGXS 中的错误。第一种方法是处理组件中存储调度的错误。第二种方法是全局角度错误处理程序,作为错误未处理时的后备(第一种方法未处理)。

但问题是,当操作处理程序中出现错误时,NGRX 总是会调用全局错误处理程序。

因此,在组件中给出以下代码:

this.store.dispatch(new FetchAction())
   .subscribe( error: () => console.log('fetch error occured'))
Run Code Online (Sandbox Code Playgroud)

这个动作处理程序:

fetch() {
   return this.http.get('..');
}
Run Code Online (Sandbox Code Playgroud)

和这个全局错误处理程序:

export class GlobalErrorHandler extends ErrorHandler {
   handleError(err: any) {
      console.log('unexpected error occured');
   }
}
Run Code Online (Sandbox Code Playgroud)

控制台中会出现两条错误消息。一份来自调度的订阅,一份来自全局错误处理程序,因为操作处理程序中存在错误。

现在我可以在操作处理程序中捕获错误,但这将是错误的地方,因为操作处理程序不应该知道该操作的错误是在组件中处理的。

我做了一个 stackblitz,单击按钮时在控制台中显示两个错误:https ://stackblitz.com/edit/ngxs-error-throw-r42fkb?file=src/app/app.component.ts

angular ngxs

7
推荐指数
1
解决办法
3632
查看次数

PerfView:分析应用程序的性能,包括数据库调用

我目前正在使用 PerfView 对我的 (C#) 应用程序进行性能分析。但通常这些应用程序使用大量的数据库调用。所以我问自己这样的问题: - 在存储库中花费了多少时间?-(等待 SQL 查询返回花费了多少时间?)-> 我不知道这是否可以用 PerfView 发现

但是从我的跟踪中我几乎没有得到任何有用的结果。在“任何堆栈”视图中,它告诉我(当我在存储库上使用分组时)在我的存储库中花费了 1.5 秒(整个调用大约为 45 秒)。而且我知道这不是真的,因为存储库调用了很多数据库。

是否只是在等待 SQL 查询完成时未捕获 CPU 指标,因为 CPU 在这段时间内无事可做,因此我的时间只包括存储库中的数据转换时间等?

谢谢你的帮助!

编辑:

我错过的是打开线程时间选项来获取阻塞代码的时间(我想这是在数据库调用期间发生的事情)。我现在得到了所有的堆栈,只是过滤掉了无趣的东西。但我似乎无处可去。

使用“线程时间”时对我来说特别有趣的是 BLOCKED_TIME。但有了它,我认为时代已经过去了。当您查看屏幕截图时,它告诉我 CPU_TIME 是 28,384。这是毫秒(afaik),但 BLOCKED_TIME 是 2,314,732,不能是毫秒。因此 CPU_TIME 的百分比非常低,只有 1.2%,但 70 秒中有 28 秒仍然很多。所以包容百分比时间在这里比较苹果和橙子。有人可以解释一下吗?

对 WCF 服务调用进行大约 70 秒分析后的 PerfView“线程时间堆栈”视图

.net c# performance profiling perfview

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

UIWebView加载但不显示网站(XCode 4,iOS SDK 4.3)

我打算写一个包含UIWebView的应用程序.所以首先我想通过简单地加载URL来尝试一下.

  • 在Interface Builder中创建了UIWebView
  • 迷上了代码

    @property(nonatomic,retain) IBOutlet UIWebView *webView;

viewDidLoad中:

- (void)viewDidLoad {
[super viewDidLoad];
if(!webView)
{
    webView = [[UIWebView alloc]init];
}

webView.delegate = self;

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]]; }
Run Code Online (Sandbox Code Playgroud)

我也实现了didFailLoadWithError和webViewDidFinishLoad委托方法.调用webViewDidFinishLoad并指示已加载HTML.

问题是:即使调用了webViewDidFinishLoad,UIWebView也不会显示网站.它只显示白色.触摸并拖动UIWebView但不显示内容时,会显示右侧和底部的滚动条.没有找到任何东西.看起来很奇怪..

编辑 此屏幕截图显示了xib的连接:

连接

iphone uiwebview ios

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

在TypeScript中使用元组(类型推断)

给出这个稍微人为的示例:

['List', 'Of', 'Names']
        .map((name, index) => [name, index % 2])
        .map(([name, num]) => );
Run Code Online (Sandbox Code Playgroud)

为什么在类型的最后一行中将name和num string | number明显地推断为字符串和数字的数组,并且您知道吗,是否有人可以使用类型推断来使name为字符串和num为数字?

typescript

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