-
Notifications
You must be signed in to change notification settings - Fork 523
Differences between Kestrel and WebListener #282
Comments
This is probably caused by #124 which has a pending PR to fix it. |
@Tratcher could this explain the issues that i'm having with IFormFile? (which is a POST event). |
Can you share a repro for the IFormFile? There's no reason for that to be different, it's implemented in a shared library. A raw header and body dump would be useful, or an httpclient sample. |
I've also experienced issues with IFormFile on Kestrel. Models won't get bound and in the rare case where it works the uploaded image is always garbled up. WebListener works fine from what I can tell. Should I just paste a fiddler dump here? |
@Schlurcher that would be great. I'm having trouble isolating the issue into a separate project. I think it may be to the number of end points/controllers that i have in the solution ( > 300) |
|
If need be I probably could also whip together a small project, though that will have to wait until tomorrow. |
Was this with beta7 or beta8? There was a request body corruption bug fixed near the end of beta8 #234. |
When i do a HttpPost, i can see that under the IFormCollection there are no files that have been identified (i put in a dummy ModelBinder to see what was going on), i'm just trying to get a Trace/Header for you, but there is no easy way of seeing this as the sender is a C# HttpClient. |
@Tratcher: 1.0.0-rc1-15767 |
@Tratcher seems that this is still an issue - I'm trying to get a dump of the C# HttpClient and what it sends. web listener: Kestrel: |
POST /api/update/myfile HTTP/1.1 --a777ef07-5c41-4610-8845-bd9beef7a4e1 Approved 00:00:07.6969261 PK *** FILE CONTENT IN HERE REMOVED *** |
Note when i change the Content-Disposition: (and remove the filename) to be only Content-Disposition: form-data; name="turnDocument" the error still persists. |
I've whipped together a project which repros the behaviour. https://github.com/Schlurcher/KillerKestrel The magic happens on the Contact page. Works with WebListener, fails with Kestrel. |
Just an update from what i have found overnight. If i change the C# client logic from multipartFormDataContent.Add(new ByteArrayContent(fileBytes), to multipartFormDataContent.Add(new StreamContent(documentStream), This can parse the body of the content as expected using Kestrel. |
I reverted the code back to 1.0.0-beta8 and it is now working, however with the latest RC1 this is broken. Working Repo of the issue is here (including Minimal Web App and Http Console App, and Blank Word Document): https://github.com/jruckert/WindowsAuthOnly TestController
running under web -> IFormFile document is null running under weblistener -> IFormFile document is populated. |
@Schlurcher your killerkestrel sample fails for me when using either weblistener or kestrel. The HttpContext.Request.Form is populated and has one file, but it doesn't bind to ThumbnailUpload. |
Still on rc1, btw. Should I rollback to beta8 like jruckert and post the results? |
I think we're all looking at different issues in different versions. We will get the aspnetvnext feed updated soon and then we can all sync up on the same versions and continue debugging. |
Agree, the latest rc1 on myget seems to have the issue and we are hanging out for the next update! I will continue work using the weblistener and revisit this once the feed is updated. |
@Tratcher Seems like the new rc1 bits took care of it. Everything works now for my case. |
@Tratcher same here |
Closing this out as it seems latest bits fix this. |
Hi,
As per the request to outline some of the issues i've been having swapping out weblistener and moving to kestrel (aspnet/Hosting#419)
I've created a simple HttpGet that accepts a guid as an input parameter, under the Weblistener i can see that everything is fine:
However when i swap this over to Kestrel (without any change in code, just the profile)
The guid does not get parsed out. I'm also finding the same experiences with IFormFile with additional parameters and a couple of other options that i'll document and attach to this case.
Any advice would be greatly appreciated.
Cheers,
Jonathan
The text was updated successfully, but these errors were encountered: