Tag: asp.net web api

Azure webrole循环和“无法加载文件或程序集System.Web.Http 5.2.0.0”

我再也无法部署我的azure色webrole,它无限循环。 所以我穿上了Intellitrace,我发现了这个exception: exception:抛出:“由于以下exception,无法加载角色入口点: – System.IO.FileLoadException:无法加载文件或程序集’System.Web.Http,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的exception:0x80131040) 在我的项目中,web.config和包(Webapi,webhost等)都在5.2.0.0中,所以我不明白为什么Azure试图找到5.0.0.0? 例: 你有什么主意吗 ? 谢谢 ps: System.Web.Http得到了本地复制:true

在Web API中使用ExceptionFilterAttribute

我试图在创建的Web API中实现error handling,需要以JSON格式返回exception详细信息。 我创建了BALExceptionFilterAttribute之类的 public class BALExceptionFilterAttribute : ExceptionFilterAttribute { public override void OnException(HttpActionExecutedContext actionExecutedContext) { base.OnException(actionExecutedContext); actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(HttpStatusCode.BadRequest, new { error = actionExecutedContext.Exception.Message }); } } 并在Gloal.asax.cs中注册了它们 GlobalConfiguration.Configuration.Filters.Add(new BALExceptionFilterAttribute()); 在我的控制器中,我想抛出exception [HttpGet] [BALExceptionFilter] public HttpResponseMessage Getdetails(string ROOM, DateTime DOB_GT) { if (string.IsNullOrEmpty(ROOM) { return Request.CreateResponse(new { error = “Input paramete cannot be Empty or […]

Google跟踪代码管理器服务器端跟踪.NET

我们需要从服务器端推送来自.Net(C#)应用程序的数据层,触发事件等。 Google跟踪代码管理器具有JavaScript,Android和iOS SDK。 它还具有REST API,但此API仅允许管理容器,标记和事件,但不允许跟踪它们。 那么可以实现GTM的服务器端跟踪吗? 似乎应该是因为存在适用于移动设备的SDK,它应该没有太大的区别。 如果可能,那么请告诉我们如何以及可能存在API或.Net的SDK将来存在或计划。 也许我们必须将数据直接推送到Google Analytics和其他终端? 我可以看到JavaScript SDK将数据直接从页面推送到GA。

将嵌套集合发布到Web API

我正在尝试将复杂类型的对象发布到web api。 在web api端,当方法接收到object参数时,除了从ICollection派生的集合之外,每个属性都被正确设置。 这是我的示例类: public class MyClass { private int id; public int Id { get { return id; } set { id = value; } } private MyCollection collection; public MyCollection Collection { get { return collection; } set { collection = value; } } } public class MyCollection : ICollection { public […]

是EntityFramework 6中的IDbCommandInterceptor线程是否安全

使用DbInterception add方法注册时,IDbCommandInterceptor实例是否被视为线程安全? 我已经实现了一个符合IDbCommandInterceptor接口的类,并且当调用其中一个执行方法与调用相应执行方法的停止时间相比时,它跟踪命令的开始时间。 我将这些信息存储在私人ivar列表中,需要知道我正在做的事情是否安全。

具有Identity Auth的MVC应用程序中的Web API Basic Auth

所以我有一个使用Identity进行身份validation的C# MVC应用程序。 我现在需要通过Web API向我的一些客户公开一些内容。 而不是构建单独的应用程序,项目,部署……我只是在现有项目中添加了一个API Controller 。 为了让我的客户保持简单,我决定使用Basic Auth ,而是选择强制我的客户使用SSL连接到我的API。 我已经按照这个非常有用的教程在我的API中实现Basic Auth : http : //www.piotrwalat.net/basic-http-authentication-in-asp-net-web-api-using-message-handlers/ 问题是,他们的指令接管整个应用程序的Auth … 我需要我的MVC应用程序继续使用它当前正在使用的Identity Auth ,并希望滚动我自己的自定义属性(如[APIAuthorize] ),以便它只适用于我的API Controller 。 我可能会破解并试图让它工作,但由于这涉及到安全性,我决定请求一些有关如何最好地实现这一点的帮助。 具体来说,我需要知道1)我在Global.asax做了什么(如果有的话),因为上面的URL建议我这样做: protected void Application_Start() { GlobalConfiguration.Configuration.MessageHandlers .Add(new BasicAuthMessageHandler(){ PrincipalProvider = new DummyPrincipalProvider() }); //… } 但同样,这会将身份validation接管到整个应用程序… 2)我需要在自定义身份validation属性中做什么才能使所有这些工作无缝地完成。 当然,如果有更好的方法来完成所有这些(没有创建单独的应用程序或增加我的客户的实施难度),那么我全都耳朵。

无法在Mono中加载’System.Web.Http.WebHost.Routing.HttpRouteExceptionHandler’类型

我尝试在Mono中使用最新的Asp.Net Web API,但错误显示如下: System.TypeLoadException Could not load type ‘System.Web.Http.WebHost.Routing.HttpRouteExceptionHandler’ from assembly ‘System.Web.Http.WebHost, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’. Description: HTTP 500.Error processing request. Details: Non-web exception. Exception origin (name of application or object): System.Web. Exception stack trace: at System.Web.Routing.UrlRoutingModule.PostResolveRequestCache (System.Web.HttpContextBase context) [0x00054] in /Volumes/build-root-ramdisk/mono-3.4.0/mcs/class/System.Web.Routing/System.Web.Routing/UrlRoutingModule.cs:128 at System.Web.Routing.UrlRoutingModule.PostResolveRequestCache (System.Object o, System.EventArgs e) [0x00007] in /Volumes/build-root-ramdisk/mono-3.4.0/mcs/class/System.Web.Routing/System.Web.Routing/UrlRoutingModule.cs:88 at System.Web.HttpApplication+c__Iterator0.MoveNext () [0x001ba] in […]

无法使用带有GET请求的动词类型发送内容正文

我目前正通过WebApi收到请求,并试图将其重新发送到另一个站点。 目标是通过示例接收请求: http:// localhost:9999 / #q = test 。 然后将其转发到真实网站:(我的测试我设置了google.com) http://google.com/#q=test 我有以下代码: protected override async Task SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { string url = request.RequestUri.PathAndQuery; UriBuilder forwardUri = new UriBuilder(_otherWebSiteBase); forwardUri.Path = url; if (request.Method == HttpMethod.Get) { //request.Method = HttpMethod.Post; } request.RequestUri = forwardUri.Uri; request.Headers.Host = forwardUri.Host; return await _client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);//_client is an HttpClient […]

图Api – 401未经授权

刚开始使用图形/办公室API,哇,这是一个雷区! 只是想知道是否有人可以给我任何建议? 当我尝试联系https://graph.microsoft.com/beta/me/files时,我得到401。 我的JWT如下: { “aud”: “https://graph.windows.net/”, “iss”: “https://sts.windows.net/916970f4-e570-4036-a353-8ae647af1d3e/”, “iat”: 1444794383, “nbf”: 1444794383, “exp”: 1444798283, “ver”: “1.0”, “tid”: “916970f4-e570-4036-a353-8ae647af1d3e”, “oid”: “c454b826-612f-4525-8995-87f1a24dc3df”, “sub”: “c454b826-612f-4525-8995-87f1a24dc3df”, “idp”: “https://sts.windows.net/916970f4-e570-4036-a353-8ae647af1d3e/”, “appid”: “568d0906-4131-4b97-8b08-9efdbe1636c4”, “appidacr”: “1” } 我的令牌以一种相当奇怪的方式被获取…我有一个web项目azure AD,谁的令牌用于获取web api Azure Ad令牌,然后该令牌用于生成图api jwt,如上所示。 下面是怎么回事:

CamelCasePropertyNamesContractResolver在MapHttpRoute之后无法正常工作

我正在尝试在我的.Net API项目中实现JSON驼峰套管。 在我的启动课程中,我添加以下几行: config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); config.Formatters.JsonFormatter.UseDataContractJsonSerializer = false; 据我了解,这是在所有路线上实施骆驼套管所需的。 但是,当我添加以下内容时,无法正常工作,响应将以Pascal Case的forms返回: RouteTable.Routes.MapHttpRoute( “DefaultApi”, “{controller}/{id}”, new {id = RouteParameter.Optional} ); 当我删除上面的MapHttpRoute行并在控制器中使用Route属性时,驼峰套管工作正常。 有没有人知道这里发生了什么?