草庐IT

web-requests

全部标签

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

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

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# - 我的控件是 "not allowed here because it does not extend class ' System.Web.UI.UserControl'”

所以我有另一个刮面器(无论如何对我来说)。我正在尝试在CMS中创建我自己的自定义控件,我只有部分源代码(即供应商提供给我的示例)。基本上,我创建了一个名为DataDefinitionContent的类,它扩展了ControlBase。现在,根据我从元数据中获得的信息,ControlBase扩展了UserControl,所以我原以为这不会发生什么戏剧性的事情。谁能阐明为什么这对我不起作用?我的类(class):publicpartialclassDataDefinitionContent:ControlBase,ICustomControl{...Stuff}控制库:usingSyste

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# - .NET Web 服务和 BackgroundWorker 线程

我正在尝试在网络服务方法中执行一些异步操作。假设我有以下API调用:http://www.example.com/api.asmx并且该方法称为GetProducts()。在这个GetProducts方法中,我做了一些事情(例如,从数据库中获取数据),然后在我返回结果之前,我想做一些异步事情(例如,给我发一封电子邮件)。这就是我所做的。[WebMethod(Description="Balblahblah.")]publicIListGetProducts(){//Blahblahblah..//GetdatafromDB..hiDB!//varmyData=.......//Moar

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

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