Make ODataQueryOptions behave more like a property

As of right now, every time the user calls EntitySetController.QueryOptions we create a new instance of ODataQueryOptions<T>. This causes some problems when the user calls it several times and ma...

Id #1061 | Release: None | Updated: Today at 5:38 PM by jacalvar | Created: Today at 5:38 PM by jacalvar

[HelpPage]Do not display parameter info when action parameter is HttpRequestMessage

For the following action, we are currently displaying parameter info(attached an snapshot image) in help page: public IEnumerable<string> Get(HttpRequestMessage request) { return new string[] { "v...

Id #1060 | Release: None | Updated: Today at 5:00 PM by kichalla | Created: Today at 5:00 PM by kichalla

Validation - consider using FileExtensionsAttribute from System.ComponentModel.DataAnnotations

The said attribute is new in .net 4.5 We should consider obsoleting out own FileExtensions attribute if the new attribute can be made to work with instances of HttpPostedFileBase (it is currently...

Id #1059 | Release: None | Updated: Today at 4:42 PM by eilonlipton | Created: Mon at 10:28 PM by kenegozi

JQuery validation plugin - version upgrade

MVC currently bundles version 1.10 from September 2012, the latest is 1.11.1 from March 2013.

Id #1058 | Release: v5.0 RTM | Updated: Mon at 10:17 PM by kenegozi | Created: Mon at 10:17 PM by kenegozi

JQuery Validation plugin - include additional-methods file

The JQuery Validation plugin is normally bundled with a file named additional-methods.js that adds some more validation methods to the basic ones that are in the plugin. Two of which, 'accept' (f...

Id #1057 | Release: None | Updated: Today at 4:43 PM by eilonlipton | Created: Mon at 10:14 PM by kenegozi

Document that IValueProvider.GetValue() returns null if the exact key is not found

Document that IValueProvider.GetValue() returns null if the exact key is not found.

Id #1056 | Release: None | Updated: Mon at 9:25 PM by binki | Created: Mon at 9:25 PM by binki

WebAPI ODataLib dependency invalid

Currently the WebAPI OData package has a dependency on ODataLib >= 5.5.0-alpha2, however if you use ODataLib 5.5.0-rc1 everything breaks. The MyGet dependency value should probably be set to =5.5...

Id #1055 | Release: v5.0 Preview | Updated: Fri at 10:39 PM by yishaigalatzer | Created: Fri at 12:14 PM by Omar007

Update the Web API OWIN adapter to use Microsoft.Owin once it behaves well

Biggest adoption blockers identified so far are: Potential null refs when computing URIs Doesn't throw when required keys are missing from the environment, or when the environment has the wrong ty...

Id #1054 | Release: v5.0 RTM | Updated: Fri at 10:17 PM by yishaigalatzer | Created: Fri at 12:59 AM by youssefm

Format handlers configuration in web.config after install Web API CORS package

After installing CORS package, the current behavior is: The handlers config is one line <handlers><remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /><remove name="ExtensionlessUrlHandler-IS...

Id #1053 | Release: v5.0 RTM | Updated: Fri at 10:03 PM by yishaigalatzer | Created: Thu at 9:59 PM by hongyes

input type = email jquery validate overriding mvc data annotation

When applying the following properties to a model: [Required(ErrorMessage = "Email is required")] [RegularExpression(RegularExpressions.Email, ErrorMessage = "Email is not valid")] [DataType(DataTy...

Id #1051 | Release: vNext | Updated: Fri at 10:02 PM by yishaigalatzer | Created: May 15 at 2:51 AM by maxtoroq

[CORS] Preflight request failed when there's an HttpOptions route attribute

This is reported by a customer. See more details here: https://aspnetwebstack.codeplex.com/discussions/441725#editor Repro attached.

Id #1050 | Release: v5.0 RTM | Updated: Fri at 9:40 PM by yishaigalatzer | Created: May 15 at 12:04 AM by yaohuang

$select response on Json formatter not maintaning the order of properties mentioned in the $select query.

I checked with OData formatter and there the order is maintained as expected. Request(note the order of properties): http://localhost:63523/api/Categories?$top=3&$select=Description,CategoryName...

Id #1049 | Release: v5.0 RTM | Updated: Fri at 9:32 PM by yishaigalatzer | Created: May 14 at 8:30 PM by kichalla

$select and $expand not working properly for complex types in json formatter

Given the following model: public class JsonSelectCustomer { public int Id { get; set; } public string Name { get; set; } public virtual IList<JsonSelectOrder> JsonSelectOrders { get; s...

Id #1048 | Release: v5.0 RTM | Updated: Fri at 9:30 PM by yishaigalatzer | Created: May 14 at 6:22 PM by jacalvar

ReadAsMultipartAsync may cause null ref exception

This is a issue from fuzzing test, but it's not a security issue. To repro the issue, consume the attached file and build HttpContent by code: public bool ConsumeFuzzedFile(string fuzzedFile, Exc...

Id #1046 | Release: v5.0 RTM | Updated: May 14 at 5:12 PM by eilonlipton | Created: May 11 at 5:46 PM by hongyes

Provide a way to specify actual return type for actions returning IHttpActionResult.

OData and HelpPage areas are effected by this: OData Error: {"Message":"An error has occurred.","ExceptionMessage":"Cannot create an EDM model as the action 'Get' on controller 'Customers' has ...

Id #1045 | Release: v5.0 RTM | Updated: May 14 at 5:11 PM by eilonlipton | Created: May 10 at 5:39 PM by kichalla

[Regression]Validation error message for string property changed for form url encoding

Build - May 8th Here is my model public class ValidationModel { public int IntReq { get; set; } [Required] public string StrNotReqAndDMIsReq { get; set; } } My request var formUrlEncodedB...

Id #1044 | Release: v5.0 RTM | Updated: May 14 at 5:09 PM by eilonlipton | Created: May 10 at 6:26 AM by kirthik

Error when the class has self reference and inheritance

Url /api/passos?$expand=ProximoPasso&$select=Nome,ProximoPasso/Nome Code public abstract class EntityNome : IEntity { public int Id { get; set; } public string Nome { get; set; } } pub...

Id #1043 | Release: v5.0 RTM | Updated: May 14 at 5:15 PM by eilonlipton | Created: May 10 at 5:06 AM by Ridermansb

FormUrlEncodedContent breaks on large values

Due to FormUrlEncodedContent's use of Uri.EscapeDataString() internally, it is unable to post values exceeding ~32k in length; Uri.EscapeDataString() is documented to throw UriFormatException if th...

Id #1042 | Release: v5.0 RTM | Updated: May 14 at 5:17 PM by eilonlipton | Created: May 10 at 12:27 AM by nitzmahone

parse errors in OData $filter and $orderby are not sent back to the client proeprly

Right now, if you use QueryableAttribute and have syntax errors in your query string, you get back a 400 with error message that says "The query specified in the URI is not valid.". It is right but...

Id #1041 | Release: v5.0 RTM | Updated: May 14 at 5:18 PM by eilonlipton | Created: May 9 at 8:02 PM by raghuramn

Empty SingleResult<T> cannot be formatted by the ODataFormatter

public override SingleResult<Customer> GetCustomer(int key) { return SingleResult.Create(Enumerable.Empty<Customer>()); }

Id #1040 | Release: v5.0 Preview | Updated: Mon at 9:49 PM by kenegozi | Created: May 9 at 5:38 PM by raghuramn

$expand fails if the request has $inlinecount

Discussion at https://aspnetwebstack.codeplex.com/discussions/398611 Error received is Only a top-level feed can have the 'ODataFeed.Count' property value specified. Expanded links do not sup...

Id #1037 | Release: v5.0 Preview | Updated: May 10 at 6:09 AM by raghuramn | Created: May 8 at 9:38 PM by raghuramn

[WebApiOnOwin]Uploading a 2GB file with custom input buffer selector set to true fails

Repro sample : FileUploadSample (file://KK-MC2/FileUploadSample) I have a simple custom buffer selector where UseBufferedInputStream returns true. When I try to upload a 2GB fails, I am seeing ...

Id #1036 | Release: v5.0 RTM | Updated: May 14 at 5:27 PM by eilonlipton | Created: May 8 at 9:19 PM by kirthik

ControllerDescriptor.ControllerName doesn't return expected value

I'm having an issue with ControllerDescriptor.ControllerName. It's either poorly documented, or it doesn't properly do what it says it does. I've been using ControllerDescriptor instances in spo...

Id #1035 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: May 8 at 8:44 PM by rossisdead

Unobtrusive validation problem with case insensitive regex

The (?i) feature of .net regex parsing is non-standard and not supported in javascript. This means that if you use a regexp such as [RegularExpression(@"(?i)[a-z0-9][a-z0-9_.-]+[a-z0-9]", ErrorM...

Id #1034 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: May 8 at 2:47 AM by tilovell09

OData $batch sends the wrong response when a request within a changeset fails

Given a $batch request like the following, where the second operation in the changeset fails as this one POST http://jcalvarro-wsr3:9001/batch/$batch HTTP/1.1 DataServiceVersion: 1.0;NetFx MaxDataS...

Id #1033 | Release: v5.0 Preview | Updated: Thu at 7:50 PM by yaohuang | Created: May 6 at 9:31 PM by jacalvar

Implement IODataUrlResolver so that ODataLib can resolve Url references that are part of a batch request

When doing the following batch request with DataServicesClient: GeneratedDataServicesClient client = new GeneratedDataServicesClient(serviceUrl); client.Format.UseJson(); BatchCustomer customer = c...

Id #1032 | Release: v5.0 Preview | Updated: Sat at 12:58 AM by yaohuang | Created: May 6 at 5:43 PM by jacalvar

Web API Project Type Without Website files

Whenever I create an API, sometimes, I do not want a website associated with it. Please add a web API project type without Scripts, Views, Models and so on. Just add the ValuesController along with...

Id #1031 | Release: v5.0 RTM | Updated: May 14 at 5:20 PM by eilonlipton | Created: May 5 at 6:54 AM by melech

HttpClient is not passing impersonated authentication

We have a MVC 4 website using windows authentication and need to pass the logged in user's credentials to the Web API service we're calling. This works using WebClient, but we're unable to get the...

Id #1030 | Release: vNext | Updated: May 14 at 5:24 PM by eilonlipton | Created: May 3 at 6:23 PM by midget7j

$expand with Entityframework fails on nested expands involving the original type

Model is as follows, public class CustomersContext : DbContext { public DbSet<Customer> Customers { get; set; } public DbSet<Order> Orders { get; set; } } public class Customer { publ...

Id #1028 | Release: v5.0 RTM | Updated: May 7 at 5:26 PM by eilonlipton | Created: May 1 at 6:54 PM by raghuramn

Add support for selecting odata actions in $select clauses

Given an entityset with an Entity that has an action associated to it, when an odata client issues the following query: BaseUrl/prefix/Customers?$select=Container.* the service should return the ...

Id #1027 | Release: v5.0 RTM | Updated: May 7 at 5:28 PM by eilonlipton | Created: May 1 at 12:33 AM by jacalvar

Null Ref Exception from ODataEntityDeserializer.ReadEntryOrFeed

To repro the issue, define entity model as: [EntitySet("Security_ArrayModel")] [DataServiceKey("ID")] public class Security_ArrayModel { public int ID { get; set; } public List<string> StringArray...

Id #1026 | Release: v5.0 Preview | Updated: May 9 at 5:59 PM by raghuramn | Created: Apr 30 at 6:35 PM by hongyes

[WebApiOnOwin]Provide IAppBuilder extension which accepts HttpServer

Scenario: Use Web API request batching on Owin. Our DefaultHttpBatchHandler requires us to supply the HttpServer instance to it, so I cannot use the 'UseWebApi' extension here. So, I am using the...

Id #1025 | Release: v5.0 RTM | Updated: May 6 at 8:41 PM by eilonlipton | Created: Apr 30 at 6:24 PM by kichalla

DefaultBodyModelValidator should use ReferenceEqualityComparer for detecting cycles in object graphs

DefaultBodyModelValidator.ValidationContext.Visited is a HashSet<object> used to detect and avoid cycles in object graphs during validation. It uses Object equality rather than reference equality. ...

Id #1024 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 30 at 6:18 PM by raghuramn

Consider improving the experience for accessing properties in EdmObject

Before the changes introduced by $select and $expand, defining custom odata links was reasonably straightforward using EntityInstanceContext.EntityInstance as in the following snippet. eic => { Der...

Id #1023 | Release: v5.0 RTM | Updated: May 7 at 5:30 PM by eilonlipton | Created: Apr 29 at 11:03 PM by jacalvar

[WebApiOnOwin] Need MaxReceivedMessageSize and ReceiveTimeout properties

Currently in webapi self host scenario, we can set MaxReceivedMessageSize and ReceiveTimeout properties but we do not have a way to set it when using katana self host. I filed a bug in Katana re...

Id #1022 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 29 at 10:39 PM by kirthik

SingleResult<T> cannot be serialized by OData formatter

public SingleResult<Customer> GetCustomers(int id) { return new SingleResult<Customer>(_db.Customers.Where(c => c.ID == id)); } Requesting the URL ~/Customers(42) gives back a...

Id #1021 | Release: v5.0 Preview | Updated: Apr 29 at 11:09 PM by raghuramn | Created: Apr 29 at 5:46 PM by raghuramn

$select fails when Queryable has PageSize.

EntitySetController currently returns an IQueryable<T> for its Get() function. When supplying the $select query, it'll throw an ArgumentException stating that it is unable to convert the SelectExpa...

Id #1020 | Release: v5.0 Preview | Updated: May 4 at 9:10 PM by raghuramn | Created: Apr 29 at 12:19 PM by Omar007

Make FacebookAuthorizeAttribute search for signed request into cookies

Facebook release a cookie named "fbsr_##APPID##" to store the signed request when using the Javascript SDK. Why don't you update the FacebookRequestHelpers.GetSignedRequest method to search also i...

Id #1019 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 29 at 10:56 AM by Dunadan

Add support for Status Code/HttpHeader attributes in web api help

This will allow a REST API to be self documenting for all inputs and outputs when applied on API functions. Example usage: Http Headers [RequestHeaderDescription(Name = "X-Auth-Token", Descrip...

Id #1018 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 28 at 10:11 PM by neutrinoemission

[OData] Add support for including non-key properties as well in the SelectExpand expression

We include the properties that the client has asked for (thorugh $select and $expand) and the entity keys in the projection expression we generate in the SelectExpandBinder. If people customize t...

Id #1017 | Release: v5.0 RTM | Updated: May 2 at 10:19 PM by eilonlipton | Created: Apr 28 at 8:11 AM by raghuramn

[OData] Add support for nested paging.

Now that we have $expand support, we should add support for server-driven paging for expanded feeds.

Id #1016 | Release: v5.0 RTM | Updated: May 2 at 10:28 PM by eilonlipton | Created: Apr 28 at 8:06 AM by raghuramn

[OData]EntityInstanceContext.EntityInstance is obsolete.

Consider adding back compat support by trying to lazily initialize this property from EntityInstanceContext.EdmObject. Now that we support $select and $expand, we optimize the query that we gener...

Id #1015 | Release: v5.0 RTM | Updated: May 2 at 10:17 PM by eilonlipton | Created: Apr 28 at 8:05 AM by raghuramn

consider how nulls are represented with IEdmObject.

IEdmObject right now tracks entity instances only which are not nullable. Once, we add support for IEdmObject with complex types and collections, we have to figure out a way to represent null value...

Id #1014 | Release: v5.0 RTM | Updated: May 2 at 10:35 PM by eilonlipton | Created: Apr 28 at 7:29 AM by raghuramn

[WebPages]: Helper namespaces are not sanitized when the path contains special characters

1) Create a new ASP.NET Web Pages site 2) Under ~\App_Code\Bar, create a helper file Foo.cshtml 3) Invoke the helper from a page as Bar.Foo.SomeHelperFunction() 4) Rename the Bar folder to inclu...

Id #1013 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 27 at 1:53 AM by pranavkm

Web API with Katana host won't clear Thread.CurrentPrincipal

The specific problem happens when debugging unit test with Visual Studio. VS unit test will use some VS.Diagnostic.ServiceModelSlim assembly which will host a wcf service on the debugging process t...

Id #1012 | Release: v5.0 RTM | Updated: May 14 at 5:32 PM by eilonlipton | Created: Apr 26 at 7:21 PM by hongyes

Batching handlers should dispose responses in case of excetpions

When a batch request is received in Web API, this request is spawn into multiple requests. When these requests are being executed one by one, there is a possibility that one of the request's proces...

Id #1011 | Release: v5.0 Preview | Updated: May 3 at 11:30 PM by yaohuang | Created: Apr 25 at 9:54 PM by kichalla

Add support for Spatial Data types in OData

Currently, there is no support for spatial data types in Web API OData. Consider adding support for this as it makes impossible to develop any service that has to deal with spatial data.

Id #1010 | Release: v5.0 RTM | Updated: May 1 at 8:25 PM by yishaigalatzer | Created: Apr 25 at 9:00 PM by jacalvar

Add Simple WebApi OData query filter mapping

Add support for mapping of query string name value pairs to a OData $filter expression. This would allow 1) Simple queries to be used with OData 2) Increaed interoperability with existing urls...

Id #1008 | Release: v5.0 RTM | Updated: May 7 at 5:32 PM by eilonlipton | Created: Apr 23 at 8:00 PM by garchibald

Owin Adapter should allow responses to be sent chunked

If a user tries to host a message handler like this with OWIN: public class MyHandler : HttpMessageHandler { protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, Cance...

Id #1007 | Release: v5.0 Preview | Updated: Thu at 10:57 PM by youssefm | Created: Apr 22 at 7:19 PM by youssefm

[CORS] There is no easy way to set CORS policy for an HTTP batching endpoint only.

To make the scenario of integrating the recently added HTTP batching function with CORS work, following setting up is required. ''' var config = GlobalConfiguration.Configuration; config.Route...

Id #1006 | Release: v5.0 RTM | Updated: May 6 at 8:52 PM by eilonlipton | Created: Apr 22 at 6:04 PM by trdai

[AttributeRouting]Route not being added to route collection

In the following scenario, the Get() action on ReproController, which is decorated with an attribute route is not being added to the route collection. On the other hand, the Get() action on the ...

Id #1005 | Release: v5.0 RTM | Updated: May 2 at 9:08 PM by yishaigalatzer | Created: Apr 20 at 7:31 PM by kichalla

Help Page: Expand documentation

The "Documentation" property in the ApiDescription and ApiParameterDescription should be expanded to include more XmlComment tags than just "<summary>". Specifically, it should at least include th...

Id #1004 | Release: v5.0 RTM | Updated: May 2 at 9:13 PM by yishaigalatzer | Created: Apr 20 at 9:07 AM by petteroe

Global error handler for Web API

If my Web API application is going to return an error to a client, I want to know about it. I want to set up something like ELMAH to notify me when the problem occurs, and I want full details of ...

Id #1001 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 19 at 3:05 AM by jdaley

FormDataCollectionExtensions.ReadAs should accept HttpActionContext

The FormDataCollectionExtensions.ReadAs() extension methods should have an additional overload that accepts an HttpActionContext. The current versions create a new HttpConfiguration() and synthes...

Id #999 | Release: v5.0 Preview | Updated: May 12 at 2:51 PM by kamehrot | Created: Apr 18 at 6:16 PM by roncain

[WebApiOnOwin]Formatter write exceptions generated HttpError responses are sent in chunked encoding format

When there are exceptions during a formatter's write to stream, I am seeing that the HttpError responses is being sent in chunked encoding format. I noticed that this HttpError response behavior ...

Id #998 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 18 at 3:35 PM by kichalla

Connection dropped by self host server if IQueryable execution fails

If you return an IQueryable from a controller action in a self host server, exceptions thrown when the IQueryable executes are not handled appropriately. The server will simply drop the connection ...

Id #997 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 18 at 7:15 AM by jdaley

Batching handlers should copy properties from batch request to dynamically created requests.

WebApi-on-Owin's HttpMessageHandlerAdapter populates following properties on an incoming request: MS_RetrieveClientCertificateDelegate MS_IsLocal When a batching request comes in these are pop...

Id #996 | Release: v5.0 Preview | Updated: Thu at 2:13 PM by yaohuang | Created: Apr 18 at 12:57 AM by kichalla

NullPropagation option smart detection should handle ObjectContext and ObjectQuery

We try to figure out whether we should do null propagation in query composition by looking at the QueryProvider of the IQueryable. We handle Linq2Objects, Linq2Sql and EntityFramework there. For...

Id #995 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 17 at 9:21 PM by raghuramn

[WebApiOnOwin]Provide virtual methods on OwinBufferPolicySelector

The current signature of OwinBufferPolicySelector is the following: We should make the UseBufferedInputStream & UseBufferedOutputStream methods overridable. public class OwinBufferPolicySelector ...

Id #994 | Release: v5.0 RTM | Updated: May 6 at 8:17 PM by eilonlipton | Created: Apr 17 at 6:22 PM by kichalla

[WebApiOnOwin] Response sent in chunked encoding when it does not have any content

When there is no content assigned to a HttpResponseMessage, the response is being sent in a chunked encoding format. Example: public HttpResponseMessage ReturnNoContent() { return Req...

Id #993 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 16 at 11:29 PM by kichalla

HttpServer should convert exceptions to safe http response messages

When an exception(example: OperationCanceledException) occurs in a message handler, we do not convert it to a safe http response message at the HttpServer level. By 'safe', I mean to HttpResponseMe...

Id #990 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 16 at 1:10 AM by kichalla

Have RouteAttribute for attribute routing

Reading/writing the following code is a bit non-intuitive: public class HomeController : ApiController { [HttpGet("")] public string Get() { return "Hello, World!"; } } Why do I need to sa...

Id #988 | Release: v5.0 RTM | Updated: May 7 at 4:41 AM by eilonlipton | Created: Apr 15 at 10:35 PM by davidmatson

[WebApiOnOwin]Create a new interface for buffer policy selection

Currently Web Api on Owin implementation uses IHostBufferPolicySelector interface defined in System.Web.Http, but I feel we should have a new interface going forward on Owin. When IHostBufferPoli...

Id #987 | Release: v5.0 RTM | Updated: May 6 at 8:42 PM by eilonlipton | Created: Apr 14 at 2:28 PM by kichalla

[WebApiOnOwin]Indicate Soft 404 Not Found response when CORS is enabled and route doesn't match

In SelfHost/OwinHost, route matching normally happens at HttpRoutingDispatcher, but when CORS is enabled, we add a message handler where we do route matching for pre-flight requests. Since this mes...

Id #986 | Release: v5.0 RTM | Updated: May 8 at 6:09 AM by kamehrot | Created: Apr 14 at 2:04 PM by kichalla

CORS message handler should return 404 in case route doesn't match

This scenario effects WebApi-on-Owin's Soft 404 Not Found responses. In SelfHost/OwinHost, route matching normally happens at HttpRoutingDispatcher, but when CORS is enabled, we add a message han...

Id #985 | Release: v5.0 RTM | Updated: May 6 at 8:44 PM by eilonlipton | Created: Apr 14 at 1:55 PM by kichalla

Redundant type name serialization in OData JSON light minimal metadata mode

When we write the entries for GET http://localhost:50231/Pets/SampleService.Model.BigPet , in JSON light minimal metadata mode, we emit type names for all BigPets. This is redundant as the type of ...

Id #984 | Release: v5.0 RTM | Updated: May 7 at 5:34 PM by eilonlipton | Created: Apr 12 at 10:43 PM by raghuramn

Add overloads taking a CancellationToken parameter

Currently some of TAP-based methods in the aspnetwebstack libraries does not have overloads with CancellationToken parameter. For instance following classes: System.Net.Http: HttpContent and succ...

Id #983 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 12 at 9:28 PM by dtretyakov

Upgrade Web API to Json.NET 5

Need to update all project templates as well.

Id #982 | Release: v5.0 RTM | Updated: Apr 15 at 3:00 AM by eilonlipton | Created: Apr 11 at 11:07 PM by youssefm

Dynamic views location

Although you can add new view locations using the various format properties (ViewLocationFormats, PartialViewLocationFormats, etc.), there is no way to implement locations that vary on dynamic valu...

Id #981 | Release: v5.0 RTM | Updated: May 14 at 5:29 PM by eilonlipton | Created: Apr 11 at 2:32 AM by maxtoroq

[AttributeRouting]Parsing error when using paranthesis in the route template's default values

For the following action: Note: the default value is a guid enclosed { , } characters. [HttpGet("ForGuids/v3/{id:guid={6A9B7F3B-ED68-4759-ABBA-959ED47EB326}}")] public string ForGuids(Guid id...

Id #978 | Release: v5.0 RTM | Updated: May 6 at 8:17 PM by eilonlipton | Created: Apr 9 at 8:46 PM by kichalla

ODataQueryOptions overwrites InlineCount and NextPageLink even if the are set already.

If you manually set the count to return by using SetInlineCount or NextPageLink, the QueryableAttribute action filter overwrites it, so your value is never returned in the response. Confirmed as ...

Id #976 | Release: v5.0 Preview | Updated: Apr 28 at 1:51 PM by raghuramn | Created: Apr 9 at 1:51 PM by mikestu

Unable to deserialize edm:Time property

I have an working OData service, but as soon as a I add a property of type TimeSpan, I have trouble POSTing to it. The $metadata shows the type as Edm:Time as I would expect. And Fiddler shows the ...

Id #975 | Release: v5.0 Preview | Updated: Apr 20 at 1:27 AM by raghuramn | Created: Apr 9 at 3:27 AM by richardgavel

Add a setter for the Request property of the HttpActionExecutedContext to improve testability

I was testing a filter that accessed the request and the response on the OnActionExecuted method. In order to setup the request on the HttpActionExecutedContext for my test I had to write all this ...

Id #973 | Release: vNext | Updated: Apr 15 at 3:00 AM by eilonlipton | Created: Apr 5 at 9:02 PM by jacalvar

Attribute routing should consider per-controller configuration based action selector

Currently we always take the IHttpActionSelector implementation present on global configuration. We should consider taking it from Per-Controller configuration if present. HelpPage, for example, ...

Id #972 | Release: v5.0 Preview | Updated: Apr 18 at 12:54 AM by youssefm | Created: Apr 5 at 4:25 PM by kichalla

Make User property of ApiController testable

Make the User property of ApiController virtual so that it can be mocked or add a setter so that it can be setup for test.

Id #971 | Release: v5.0 RTM | Updated: May 8 at 12:05 AM by kamehrot | Created: Apr 5 at 3:54 PM by jacalvar

Use the SerializerProvider in the parameter instead of RawValueSerializerProvider

In the ODataMediaTypeFormatters.cs file, in the Create method CreateRawValue(new RawValueSerializerProvider(), deserializerProvider) uses it's own SerializerProvider instead of the one provided b...

Id #970 | Release: v5.0 RTM | Updated: May 14 at 5:36 PM by eilonlipton | Created: Apr 5 at 5:23 AM by jacalvar

[AttributeRouting]Action having multiple attributes should have appropriate method constraints for corresponding route template

For the following action: [HttpPost("api/values/path1")] [HttpGet("api/values/path2")] public void DoSomething() { } Currently the routes in the collection are like following: RouteTemplate: ...

Id #969 | Release: v5.0 RTM | Updated: May 6 at 8:18 PM by eilonlipton | Created: Apr 5 at 1:27 AM by kichalla

UpForGrabs: IModelValidatorCache inaccessible

One of the default services for Web API is an implementation of IModelValidatorCache. That interface and the corresponding implementation are internal, meaning that it's not possible to set up an ...

Id #967 | Release: vNext | Updated: Today at 1:59 PM by erikos | Created: Apr 3 at 5:10 PM by stevep001

Action selection requires a default value on a parameter even when the parameter is marked as optional

This is especially an issue for attribute routing: [HttpGet("{id?}")] public string Get(string id) { } doesn't work unless you add a default value [HttpGet("{id?}")] public string Get(strin...

Id #966 | Release: v5.0 RTM | Updated: May 6 at 8:20 PM by eilonlipton | Created: Apr 3 at 12:50 AM by youssefm

[CORS] Trace level of preflight request rejected should be Warning instead of Information.

Issue Today if a preflight is rejected. 400 is returned and following is the tracing output iisexpress.exe Information: 0 : [2013-04-02T23:39:57.9893186Z] Level=Info, Kind=Begin, Category='System....

Id #965 | Release: v5.0 RTM | Updated: May 6 at 8:53 PM by eilonlipton | Created: Apr 2 at 11:53 PM by trdai

[CORS] Request Id in CorsEngineTracer is null

Following traces are what you get: iisexpress.exe Information: 0 : [2013-04-02T23:33:47.6530772Z] Level=Info, Kind=Begin, Category='System.Web.Http.Cors', Id=00000000-0000-0000-0000-000000000000, O...

Id #964 | Release: v5.0 RTM | Updated: May 1 at 9:47 PM by eilonlipton | Created: Apr 2 at 11:38 PM by trdai

[Cors] RequestMessageHandlerTracer is not executed for OPTIONS preflight request.

Repro Setup a CORS enable web site and write a customized trace writer like this: public class CustomTraceWriter : SystemDiagnosticsTraceWriter { public override void Trace( HttpRequestMessage...

Id #962 | Release: v5.0 Preview | Updated: Apr 22 at 9:59 PM by vijay_rk | Created: Apr 2 at 10:56 PM by trdai

[AttributeRouting]Generated route name suffixes should be in the same order as the order of routes.

In the case where action names are the same for multiple actions, to keep route names unique in the route collection, we dynamically generate the names with suffixes like Products.Get1, Products.Ge...

Id #961 | Release: v5.0 RTM | Updated: May 6 at 8:20 PM by eilonlipton | Created: Apr 2 at 10:55 PM by kichalla

Add CreateResponse overload that only takes T for body

Currently there is an overload that takes HttpStatusCode and T but in many cases HttpStatusCode.OK is the code and in those cases it would be easier just to be able to pass in T. It would also be...

Id #960 | Release: v5.0 Preview | Updated: Apr 15 at 3:00 AM by eilonlipton | Created: Apr 2 at 8:23 PM by HenrikN

[AttributeRouting]Handle scenario when multiple route prefixes are used and there are explicit RouteNames on actions

Currently the following would cause a problem, as we try to create 2 routes(one for each route prefix) with the same route name calle "GetSingleSample". [RoutePrefix("api/test")] [RoutePrefix("api/...

Id #959 | Release: v5.0 RTM | Updated: May 6 at 8:21 PM by eilonlipton | Created: Apr 2 at 8:15 PM by kichalla

Batching scenario not working in Web host.

I have been unable to make batching work in Web host scenarios with our latest code. I tried using Brad Wilson's batching sample from his blog post and also the HostedBatch sample in public asp.net...

Id #957 | Release: v5.0 Preview | Updated: Apr 22 at 4:35 PM by yaohuang | Created: Apr 2 at 2:10 AM by kichalla

HttpRoute changes whitespace route templates to the empty string

We should keep whitespace as whitespace.

Id #955 | Release: v5.0 Preview | Updated: Apr 16 at 5:51 PM by youssefm | Created: Apr 1 at 10:14 PM by youssefm

Make sure Attribute Routing and EnableCors play nicely together

I just received a report from a user where he only uses attribute routing and because of the HTTP method route constraint that we create from the attribute, no other HTTP methods can reach the Web ...

Id #954 | Release: v5.0 RTM | Updated: May 6 at 8:21 PM by eilonlipton | Created: Apr 1 at 7:08 PM by yaohuang

HttpRoute.GetRouteData fails when the request Uri is the virtual path root

HttpRoute.GetRouteData truncates the Uri in the request message to calculate the relative request Uri, but in certain cases, for example when the request Uri is equal to the virtualPathRoot, the st...

Id #953 | Release: vNext | Updated: Apr 15 at 3:00 AM by eilonlipton | Created: Mar 30 at 9:43 PM by DaveVdE

StackOverflowException at large http message body processing by HttpContentMultipartExtensions

We're using nightly nuget packages 2013-03-30. When we're trying to upload large files (for instance > 2Mb) and process it by using HttpContentMultipartExtensions we've got unhandled exception whic...

Id #952 | Release: v5.0 Preview | Updated: Fri at 4:53 AM by dtretyakov | Created: Mar 30 at 4:18 PM by dtretyakov

CORS doesn't seem to work for me with POST

Hi, I followed the instructions on http://aspnetwebstack.codeplex.com/wikipage?title=CORS%20support%20for%20ASP.NET%20Web%20API to setup CORS. When Get requests are issues I see the OPTIONS r...

Id #951 | Release: v5.0 Preview | Updated: Apr 26 at 2:14 AM by ebucis | Created: Mar 30 at 1:35 AM by ebucis

Expose ability convert FilterClause to Linq Expression

We can parse a filter to a FilterClause but there is no easy way to convert that FilterClause to an Expression; ex: var filterClause = Microsoft.Data.OData.Query.ODataUriParser.ParseFilter(filter...

Id #950 | Release: v5.0 RTM | Updated: May 1 at 9:47 PM by eilonlipton | Created: Mar 30 at 1:33 AM by a7medkamel

Tracing should trace warning not error for HttpResponseException

The default trace writers do not currently special-case HttpResponseException, and therefore trace at TraceLevel.Error. This is confusing, because it means simple user error in the URI will gener...

Id #949 | Release: v5.0 Preview | Updated: May 8 at 10:19 PM by kenegozi | Created: Mar 29 at 8:23 PM by roncain

Add AuthenticationFilterAttributeTracer wrapper for AuthenticationFilter

The authentication filter won’t work under tracing mode as tracer will wrap the auth filter as a FilterTracer which is just an IFilter. FilterGrouping.SelectAvailable can't select correct authentic...

Id #946 | Release: v5.0 Preview | Updated: May 13 at 5:02 PM by davidmatson | Created: Mar 28 at 9:43 PM by hongyes

Update assembly references in Web.Config for Help Page

The web.config in the Help Page package still references MVC 4 and Web Pages 2 assemblies

Id #945 | Release: v5.0 Preview | Updated: May 8 at 11:35 PM by phenning | Created: Mar 28 at 5:28 PM by jeloff

Provide a method to update the user of the form token for AntiForgery

If you look at this SO thread: AntiForgeryToken invalid after sign in It seems to me that an official method, is needed to cleanly update the form token, when the user has been successfully authe...

Id #944 | Release: vNext | Updated: Apr 15 at 3:00 AM by eilonlipton | Created: Mar 27 at 7:03 AM by ericpanorel

ModelBinder errors (parse) for required action parameters result in the action not getting executed.

public class CustomersController : ApiController { public Customer GetCustomer(int key) { return null; } } Use the url http://localhost/MyTypes/2886753098675309 This shoul...

Id #942 | Release: v5.0 RTM | Updated: May 1 at 9:57 PM by eilonlipton | Created: Mar 26 at 6:49 PM by raghuramn

Stack overflow if GetControllerMapping called before 1st request

If tracing is enabled and DefaultHttpControllerSelector.GetControllerMapping() is called before the first request has been processed, the MessageHandler pipeline will be corrupted. The TraceManage...

Id #938 | Release: v5.0 Preview | Updated: Apr 15 at 3:00 AM by eilonlipton | Created: Mar 25 at 6:51 PM by roncain

FormDataCollectionExtensions.CreateActionContextForModelBinding uses property that is marked unit test only.

HttpControllerContext controllerContext = new HttpControllerContext() { Configuration = config }; is the offending line.

Id #932 | Release: vNext | Updated: Apr 15 at 3:00 AM by eilonlipton | Created: Mar 23 at 12:34 AM by raghuramn

Consider improving OData link generation with a fluent api

When generating a link for an OData resource, the current experience is as follows. Url.ODataLink( new EntitySetPathSegment("People"), new KeyValuePathSegment(key)); Consider impr...

Id #929 | Release: vNext | Updated: Apr 15 at 3:02 AM by eilonlipton | Created: Mar 22 at 6:38 PM by jacalvar