草庐IT

codelab_api_request_duration_seco

全部标签

c# - ASP.NET WebAPI : Aborted (cancelled) requests

对于初学者来说,这是一个讨论,如果你们中的任何人在WebAPIController(可能也适用于MVC)中做请求取消这样的事情。我的意思特别是像下面这样的场景:客户端(通常是浏览器)启动请求,导航离开或更一般地,出于任何原因中止请求。现在,请求在客户端中止,不再考虑。但在服务器端,请求仍在执行,通常可能会做两件特别有趣的事情:进行(重)数据库查询对另一个服务进行(重)服务调用最后一切都白费了(至少当它是一个无副作用的读取操作时)。在这种情况下,是否有人处理取消正在进行的查询/服务调用?我所知道的是,可以在APIController中传递CancellationToken(尽管我无法让它

c# - 如何使用 Angular 读取从我的 API 发送的 header ?

我在domain.com上有类似于以下代码的内容:$http.post("http://api.domain.com/Controller/Method",JSON.stringify(data),{headers:{'Content-Type':'application/json'}}).then(function(response){console.log(response);},function(response){//somethingwentwrong});}它与我的.NETAPI通信效果很好。response.data拥有我的服务器需要给我的所有数据。但是,我们有一个新的安

c# - Asp.Net Core API 禁用启动完成消息

作为我的应用程序的一部分,我有一个.NetCoreAPI项目。与该项目作为其自己的进程运行的大多数情况不同,我让API在线程中运行,除其他外,在单个进程中运行。同样对于我的项目,我已经实现了一个自定义日志系统来满足我的需要。但是,我遇到了一个小问题。每次我运行我的程序时,一旦API启动,这条消息就会打印到控制台:Hostingenvironment:ProductionContentrootpath:C:\Users\Path\To\CodeNowlisteningon:http://*:8000Applicationstarted.PressCtrl+Ctoshutdown.我想禁用

c# - 如何在 ASP.net Core 中进行 Per-Request 缓存

我的旧代码是这样的:publicstaticclassDbHelper{//OneconectionperrequestpublicstaticDatabaseCurrentDb(){if(HttpContext.Current.Items["CurrentDb"]==null){varretval=newDatabaseWithMVCMiniProfiler("MainConnectionString");HttpContext.Current.Items["CurrentDb"]=retval;returnretval;}return(Database)HttpContext.Cu

c# - 使用 Simple Injector 的 Per Thread 和 Per Web Request 的混合生活方式

我正在使用SimpleInjector作为我的IoC库。我根据网络请求注册了DbContext,它工作正常。但是有一项任务是我在后台线程中运行它。所以,我在创建DbContext实例时遇到了问题。例如Service1有一个DbContext实例Service2有一个DbContext的实例Service1和Service2从后台线程运行。Service1获取实体并将其传递给Service2Service2使用该实体,但实体与DbContext分离其实问题就出在这里:Service1.DbContext和Service2.DbContext的区别。似乎当我在ASP.NETMVC中的单独线

c# - ASP.NET Web API 跨请求缓存操作过滤器属性

在ASP.NETWebAPI(4.0.30506)中似乎有一些我以前从未见过的奇怪行为。我看到的是相同的操作过滤器属性实例在WebAPI请求中重复使用。如果此属性被注入(inject)依赖项,这尤其是一个问题,因为这些依赖项可能特定于Web请求。我知道属性最好是passive,但我的假设是操作过滤器属性未缓存。我搜索了任何描述此问题及其背后原因的文章、博客文章或Microsoft更改日志,但我找不到任何东西。这让我想知道我的配置是否有问题导致这种情况发生。然而,我能够在一个新的空VisualStudio2012WebAPI项目中重现这个问题。我所做的是使用带有“WebAPI”模板的Vi

c# - System.Net.ProtocolViolationException : You must write ContentLength bytes to the request stream before calling [Begin]GetResponse

我得到了"System.Net.ProtocolViolationException:YoumustwriteContentLengthbytestotherequeststreambeforecalling[Begin]GetResponse"errorwhencallingtothe"BeginGetResponse"methodofthewebrequest.这是我的代码:try{StreamdataStream=null;WebRequestWebrequest;Webrequest=WebRequest.Create(this.EndPointAddress);Webrequ

c# - DelegatingHandler 不执行 ASP.Net Web Api

今天我在我的WebApi应用程序中遇到了一个奇怪的行为protectedvoidApplication_Start(){FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);GlobalConfiguration.Configuration.MessageHandlers.Add(newDummyMessageHandler());}我的DelegatingHandler看起来像这样。publicclassDummyMessageHa

c# - 您可以在同一个 Web API Controller 中使用 2 个具有不同参数类型的 GET 方法吗?

这个问题在这里已经有了答案:CanIhaveMultipleGetMethodsinASP.NetWebAPIcontroller(2个答案)关闭7年前。我有一个带有2个GET方法的asp.netwebapiController。一个接受字符串参数,另一个接受int参数。我只有使用webapi设置的默认路由。publicHttpResponseMessageGetSearchResults(stringsearchTerm){HttpResponseMessageresponse;//DoWorkreturnresponse;}publicHttpResponseMessageGet(

c# - 更改 ASP.NET Web API 媒体类型格式化程序的响应 header

我已经创建了一个ASP.NETWebAPIController,它在一个操作上返回一个强类型对象,如下所示://GETapi/iosdevices/5publiciOSDeviceGet(stringid){returnnewiOSDevice();}我创建了一个BufferedMediaTypeFormatter来处理iOSDevice类型:publicclassiOSDeviceXmlFormatter:BufferedMediaTypeFormatter{publiciOSDeviceXmlFormatter(){SupportedMediaTypes.Add(newMediaT