Commit Graph

2652 Commits

Author SHA1 Message Date
Stephen Halter 6fd09af374
Improve logging of request drain timeout (#2480) 2018-04-16 11:53:10 -07:00
Andrew Stanton-Nurse 3a45136cc4
make IConnectionInherentKeepAliveFeature a boolean feature (#2496) 2018-04-16 11:34:06 -07:00
Ben Adams e30a02cee5 Less StringValue struct copies for header checks (#2488) 2018-04-13 18:21:50 -07:00
Nate McMaster faf2f3f065
Attempt to workaround issues with File.Move on NFS file shares (aspnet/Home#2941) 2018-04-13 15:08:28 -07:00
John Luo 2d51d23697 Add file logging to functional tests 2018-04-13 14:53:57 -07:00
Stephen Halter 10f3b6863e
Avoid nullref in KestrelEventSource (#2483)
* Avoid nullref in KestrelEventSource
* Improve HostNameIsReachableAttribute to speed up test discovery
2018-04-12 17:29:34 -07:00
Justin Kotalik 4188d2fe68
sttimer changes to V2 (#773) 2018-04-12 17:11:38 -07:00
pan-wang 9c83280770
Fixing couple issues (#763)
adding more logs and fix memory leak in case of configuration change and then shutdown
2018-04-12 14:10:25 -07:00
Chris Ross (ASP.NET) ee12c4fcf2 Downgrade HTTPs handshake failures to debug #1853 2018-04-12 09:25:44 -07:00
Chris Ross (ASP.NET) c6fa9793eb Make Protocols internal 2018-04-12 08:53:27 -07:00
David Fowler ca44b4adfc
Moved kestrel specific features into transport abstractions (#2482) 2018-04-11 20:23:48 -07:00
David Fowler f6b2880369
Flow the ConnectionContext to the SNI callback (#2478) 2018-04-11 15:56:25 -07:00
Sébastien Ros e8bb88cb58
Fixing typo (#2477) 2018-04-11 14:27:53 -07:00
Nate McMaster b7b6bd9533
React to updates in dependencies and removal of System.Runtime.CompilerServices.Unsafe from netcoreapp (#429) 2018-04-11 09:59:22 -07:00
Justin Kotalik e2fbff2bd5 Feedback 2018-04-10 23:00:18 -07:00
Justin Kotalik 46efcd9332 Move srwWrapper to right location 2018-04-10 14:43:05 -07:00
Justin Kotalik 5c91dbe062 Get tests working 2018-04-10 14:21:23 -07:00
Justin Kotalik da513bd8d8 Get build.cmd working and cleanup ignored files. 2018-04-10 14:21:00 -07:00
Justin Kotalik df9efa0770 Code changes to get ANCM current working on github 2018-04-10 14:19:53 -07:00
Justin Kotalik b594130020 Adds source code from VSTS 2018-04-10 14:19:53 -07:00
Pavel Krymets 157e7f4fdd Creates two separate projects for ANCM V1 and V2. 2018-04-10 14:19:32 -07:00
Pavel Krymets 6629236a0e
Merge pull request #767 from aspnet/pakrym/perf
Improve performance
2018-04-10 12:07:26 -07:00
Pavel Krymets d63e8c5558 CPP 2018-04-10 11:04:34 -07:00
Pavel Krymets ee2e46a614 What about now? 2018-04-10 09:08:13 -07:00
Pavel Krymets 80e799d17c PR comments 2018-04-10 08:30:37 -07:00
David Fowler b030ab7e49
Update Connections.Abstractions.csproj (#2473) 2018-04-09 17:55:14 -07:00
Pavel Krymets e32b51d6e6 ENdpoint 2018-04-09 16:47:01 -07:00
Pavel Krymets f0eab4410a Cleanup 2018-04-09 15:20:28 -07:00
Pavel Krymets 7a14be006d Fast reads 2018-04-09 15:16:47 -07:00
Pavel Krymets 5e5aa90575 Remove continue with 2018-04-09 14:26:28 -07:00
Pavel Krymets 0feb83b637 Dont format some things 2018-04-09 12:10:32 -07:00
Pavel Krymets dca31cc6f6 Perf 2018-04-09 10:34:44 -07:00
Pavel Krymets 8f1781f7eb Cleanup LogEvent calls 2018-04-08 19:21:55 -07:00
David Fowler 4760cce6aa
Remove IConnection (#2472) 2018-04-07 18:55:59 -07:00
Justin Kotalik 47c7c1ad8f
Disable global loading of RequestHandler for in-process (#732) 2018-04-05 10:36:15 -07:00
Chris Ross (ASP.NET) 2ee0d6e337 Delay loading the dev cert #2422 2018-04-04 14:54:27 -07:00
Chris Ross (ASP.NET) 953496a970 Merge branch 'release/2.1' into dev 2018-04-04 13:44:56 -07:00
Chris Ross (ASP.NET) 9ea2c50068 Add SNI support #2357 2018-04-04 12:49:29 -07:00
Andrei Amialchenia 70ce044778 Corrects spelling of some comments (#2461) 2018-04-03 15:55:17 -07:00
Pavel Krymets 81bf9fb66b
Merge release/2.1 into dev (#421) 2018-04-03 10:45:34 -07:00
Pavel Krymets ba06c58bcb
Merge release/2.1 into dev (#2460) 2018-04-03 10:45:31 -07:00
Pavel Krymets 5210323385 Merge release/2.1 into dev 2018-04-03 10:11:36 -07:00
Stephen Halter 623c27ab01
Dispose SocketAsyncEventArgs when we dispose the Socket (#2459) 2018-04-02 19:48:17 -07:00
Pavel Krymets ba2b883db0
Reaction to *Memory changes (#2446) 2018-04-02 16:44:13 -07:00
David Fowler 6b183c5ac0
Use 4K as the minimum segment size (#2452)
- This normalizes the behavior for kestrel no matter what memory pool implementation is used. The transports should behave the same (ask for 1/2 full blocks) across pool implementations.
- Declare the minimum segment size in KestrelMemoryPool
- Updated the AdaptedPipeline to use MinimumSegmentSize / 2
2018-04-02 16:14:40 -07:00
Nate McMaster 6d4a632b96
Fix race condition in test code waiting for dotnet-watch to restart 2018-04-02 10:10:57 -07:00
David Fowler a37fa83aee
Fixed a parser bug found when trying out the array pool (#2450)
- When using the array pool, we get terrible block density and as a result
the header parser was failing.
- This fixes the case where the parser needed to skip 2 blocks at the end
(which is unrealistic). Comparing the current index to the reader index is incorrect
since we may end up at the same index in another segment.
2018-04-01 00:04:02 -07:00
David Fowler 7382198356
Copy connection middleware when using ListenLocalHost (#2447)
- Connection middleware got removed during Clone when using ListenLocalhost
2018-03-31 07:29:35 -07:00
Pavel Krymets 6ca61a8fc7 Merge release/2.1 to dev 2018-03-30 16:33:44 -07:00
Andrew Stanton-Nurse 2c2a8dae01
Merge pull request #2445 from aspnet/release/2.1
Add IConnection to Connections.Abstractions (#2444)
2018-03-30 15:21:48 -07:00
David Fowler 67cb8a0e11 Add IConnection to Connections.Abstractions (#2444) 2018-03-30 15:20:31 -07:00
Justin Kotalik fd6c217336 Revert "Build runtime specific metapackages"
This reverts commit ec184bc361.
2018-03-30 13:02:45 -07:00
David Fowler 9eb41ca571
Remove buffer size argument (#232)
- We're removing the buffer arugment from the API as a result of a mini review. This is a pre-emptive reaction to avoid breakage when the change comes in.
2018-03-30 10:47:12 -07:00
David Fowler 46ab09ca36 Merge branch 'release/2.1' into dev 2018-03-27 02:08:35 -07:00
David Fowler be04ccac6e
Move DuplexPipe into Kestrel.Core as internal (#2428) 2018-03-27 02:02:15 -07:00
Stephen Halter 68ff406862 Merge branch 'release/2.1' into dev 2018-03-26 14:51:21 -07:00
Stephen Halter a1de323ff4
Make LibuvTransport(Factory) pubternal (#2426) 2018-03-26 11:39:51 -07:00
David Fowler f0629dcbe4 Merge branch 'release/2.1' into dev 2018-03-24 03:14:59 -07:00
David Fowler 6701339835
Expose DefaultConnectionContext POCO (#2421)
- Made TransportConnecton derive from ConnectionContext
- Less objects, less opinions about what the ConnectionContext is. This diverges from what we do with HttpContext but it seems better overall.
- Made DefaultConnectionContext
 - Usable for unit testing
 - Usable for benchmarking
2018-03-24 03:12:53 -07:00
Nate McMaster 7e13e83348
Remove PackageArtifactCategory 2018-03-23 16:34:43 -07:00
John Luo 2dc1858f90 Merge branch 'release/2.1' into dev 2018-03-23 16:02:42 -07:00
pan-wang 731f05df38
call exit to force shutdown in case of timeout (#726) 2018-03-23 15:19:00 -07:00
John Luo 26578f5079 Reenable API check 2018-03-23 15:01:50 -07:00
John Luo ec184bc361 Build runtime specific metapackages 2018-03-23 13:40:27 -07:00
John Luo 63fd1e1a4d Re-enable api check
- Disable api check for Transport.Libuv due to breaking change
- Add empty baseline files for unreleased packages
2018-03-23 12:55:06 -07:00
David Fowler 0753f4b4f4 Merged release/2.1 2018-03-22 21:56:29 -07:00
David Fowler abdcb47b8f
Renames from API review (#2413)
* Renames from API review
- Rename Microsoft.AspNetCore.Protocols.Abstractions to Microsoft.AspNetCore.Connections.Abstractions.
- Renamed IConnectionHandler to IConnectionDispatcher (and related properties and types)
- Added ConnectionHandler and UseConnectionHandler extension method to Connections.Abstractions.
-  Use ActivatorUtilties to create the ConnectionHandler
2018-03-22 21:38:14 -07:00
Pavel Krymets ed801f0e88 Do not return 200 for exceptions 2018-03-22 16:43:11 -07:00
Justin Kotalik f1058f8575
Cleanup ReadAsync calls, make IISHttpContext private (#696) 2018-03-22 11:13:06 -07:00
Nate McMaster 12abcd2f68
Merge branch 'release/2.1' into dev 2018-03-21 22:16:12 -07:00
Nate McMaster 54e538dcb5
Remove dotnet tool install from instructions on using dotnet-dev-certs 2018-03-21 22:10:48 -07:00
Nate McMaster d61d723cba
Update package metadata to include commit hash (#713) 2018-03-21 17:42:18 -07:00
Ryan Brandenburg c8f5b2e3ae Set 2.0 baselines 2018-03-21 15:20:30 -07:00
pan-wang ffeebfc8b9
support shutdown timeout for inprocess application (#703) 2018-03-21 13:37:26 -07:00
pan-wang 5baa53393f
fixing fowarding handler for AsyncCompletion (#669)
to make sure ANCM does not release IIS pipeline until all WinHttp handlers get closed.
2018-03-20 15:56:16 -07:00
Pavel Krymets f1d8ca3045
Add CommitHash to file info (#700) 2018-03-20 09:20:37 -07:00
Stephen Halter 5fa658c800
Never run continuation inline in SocketAwaitable.OnCompleted (#2407) 2018-03-19 17:29:49 -07:00
pan-wang 2bb9a8aaf9 Adding handlerSettings configuration to aspnetcore schema for future use (#689) 2018-03-19 15:30:55 -07:00
Ryan Brandenburg 5e9dd7a5fc Set 2.0 baselines 2018-03-19 10:10:50 -07:00
Justin Kotalik cf4874997e
Heap allocate HTTP_DATA_CHUNK if the size of the response is too large. (#683) 2018-03-16 16:56:23 -07:00
Ryan Brandenburg ca15b2fbf6 Set 2.0 baselines 2018-03-16 10:50:27 -07:00
Ryan Brandenburg 3584e5f2ab Set 2.0 baselines 2018-03-16 10:50:05 -07:00
Ryan Brandenburg 4cf0b5d033 Set 2.0 baselines 2018-03-16 10:49:52 -07:00
Justin Kotalik 5e74b36c53
Verify read/write buffers, use offset parameter when reading. (#652) 2018-03-16 10:11:20 -07:00
Justin Kotalik 8ff9ce70c9
Fixes spelling (#679) 2018-03-16 09:27:40 -07:00
Ben Adams 2527face16 Query EndPoints once during reset (#2398) 2018-03-15 23:55:51 -07:00
Javier Calvarro Nelson acf7584d13 Reenable API Check 2018-03-15 21:44:34 -07:00
David Fowler 181dc0de24 React to pipelines changes 2018-03-15 16:58:53 -07:00
pan-wang e5661a46b7
do cleanup inside inprocessapplication destrutor (#676) 2018-03-15 16:47:21 -07:00
pan-wang 8e54e792fb
do shutdown check before processing request (#677) 2018-03-15 16:46:50 -07:00
Pavel Krymets 3ef9dd1640
Fix http_stop_calls_into_managed typo (#673) 2018-03-15 15:59:57 -07:00
David Fowler d31512528d
Items is now a first class property on ConnectionContext (#2395)
* Metadata is now a first class property on ConnectionContext
- Make IConnectionMetadata a manatory top level feature on ConnectionContext
- TransportConnection will lazily manifest ConnectionMetadata on first access.
This should avoid allocations since Kestrel isn't using this today.
2018-03-14 20:56:30 -07:00
pan-wang 9d064b24c7
enable debug print in aspnetcore.dll (#663) 2018-03-14 14:29:25 -07:00
Stephen Halter 9901f0f3e4
Default to the managed socket transport (#2392) 2018-03-14 11:50:10 -07:00
David Fowler 6de76c5e69
Respect the buffer size arguments on options (#230)
* Respect the buffer size arguments on options
- Allocate a buffer for receives and pass into CreateFromStream.
2018-03-14 08:48:45 -07:00
David Fowler 04eef791bc
Added transfer format to Protocol.Abstractions (#2391) 2018-03-14 08:16:38 -07:00
Ben Adams e65e58daf3 Reduce Sockets mainloop Send/Receive statemachine size (#2376)
* Use Completion to Advance in Error

* Drop ReadResult from statemachine
2018-03-13 23:04:12 -07:00
David Fowler 572627e88c
Handle posting to the libuv thread after StopAsync (#2388)
- Check if the post handle is disposed and noop if it is.
We also catch an ObjectDisposedException because it's an inherent race condition.
2018-03-13 19:37:39 -07:00
Ben Adams f6108928d8 Pass ReadOnlySequence via in (#2389)
* Pass ReadOnlySequence via in
2018-03-13 17:54:01 -07:00
Chris Ross (ASP.NET) bfdb48717f Host header format validation 2018-03-13 16:37:03 -07:00
Justin Kotalik 810c4bcb0a
Fix two AVs with InProcess (#656) 2018-03-13 16:07:55 -07:00
pan-wang d246c6f201
add port info to event log (#660) 2018-03-13 16:06:01 -07:00
pan-wang 7a511d6a94
websocket handler changes (#661)
add debug logging and reset connection in case of failure
2018-03-13 16:05:32 -07:00
David Fowler bcea8330c4
Clean up some left overs (#2385) 2018-03-13 14:10:06 -07:00
Nate McMaster 016fa66640
Map properties DotNetRestoreSources => RestoreSources for metapackage builds (#955) 2018-03-13 12:23:18 -07:00
Nate McMaster 349acb5bb3
Condense restore feed configuration to single location and remove package mirroring (#945) 2018-03-13 10:56:09 -07:00
David Fowler 2d8f3d95fe
Feature/clean up proto abstractions (#2383)
- This change aims to clean up the feature interfaces
 used by kestrel and exposed by protocol absractions. It splits out the
 IConnectionTransportFeature into smaller features that may or may
 not be implemented on the connection.
- Added all of the features from Socket.Abstractions
in an attempt to make it go away completely. As a result
the helper methods and extensions have all been added here.
- Change IConnectionHandler to take TransportConnection. This cleans up the interface and makes it more explicit what features are required by Kestrel
2018-03-13 10:27:04 -07:00
David Fowler fa3229b489
Revert "Clean up protocol abstractions (#2381)" (#2382)
This reverts commit ddd0b4c260.
2018-03-13 02:04:42 -07:00
David Fowler ddd0b4c260
Clean up protocol abstractions (#2381)
- This change aims to clean up the feature interfaces
 used by kestrel and exposed by protocol absractions. It splits out the
 IConnectionTransportFeature into smaller features that may or may
 not be implemented on the connection.
- Added all of the features from Socket.Abstractions
in an attempt to make it go away completely. As a result
the helper methods and extensions have all been added here.
- Change IConnectionHandler to take TransportConnection. This cleans up the interface and makes it more explicit what features are required by Kestrel
2018-03-13 01:43:49 -07:00
Stephen Halter 2a7bbeb8d7 Revert "React to pipelines changes (#2378)"
This reverts commit 2421df85d6.
2018-03-13 00:32:52 -07:00
David Fowler 2421df85d6 React to pipelines changes (#2378) 2018-03-12 23:59:04 -07:00
David Fowler e7d3b0c5f9
Remove KestrelThreadPool abstraction and replaced it with PipeScheduler (#2371) 2018-03-12 14:49:19 -07:00
pan-wang 02abb69cb2
fix missing reference/dereference handler (#651) 2018-03-10 09:50:48 -08:00
Stephen Halter 71bff00c0d
Use LibuvThread inspired IO Queue in Socket transport (#2368) 2018-03-09 15:04:20 -08:00
pan-wang 0b07894ea7
fix srwlock initialize (#647) 2018-03-09 11:47:54 -08:00
Justin Kotalik cb49b98b6f
Follow windows conventions for file versions (#646) 2018-03-08 16:28:27 -08:00
Pavel Krymets 77c5d2a971
Update to new corefx (#642) 2018-03-08 14:23:16 -08:00
Pavel Krymets fc80c15a65
Update to new corefx (#2369) 2018-03-08 14:23:07 -08:00
pan-wang 8dca8f030c
moving recycle and shutdown to applicationinfo (#639)
fix a race condition in processing request and app_offline, and optimize code logic
2018-03-08 12:24:25 -08:00
Justin Kotalik ad82bd31d8
Fix argument parsing for hostfxr, add native unit tests. (#635) 2018-03-08 11:53:12 -08:00
Justin Kotalik 00b1948937
Adds websocket feature detection, test cleanup. (#624) 2018-03-08 09:52:45 -08:00
Justin Kotalik ad4b172660
Remove build warnings and turn on warning as errors in IISLib. (#641) 2018-03-07 21:15:57 -08:00
Justin Kotalik 4eea754dc3
Don't create std log file for out of process when logs are disabled (#640) 2018-03-07 16:12:50 -08:00
Chris Ross (ASP.NET) 42fbba3520 More detailed request timeout exceptions #2245 2018-03-07 12:23:06 -08:00
pan-wang 419ae06935
fixing double locking issue (#637) 2018-03-07 12:02:04 -08:00
pan-wang f32addd408
Update RecycleApplication function (#634)
removing hostingmodel input from recycleapplication call and fix memory leak in recycle out of process application
2018-03-07 11:45:51 -08:00
pan-wang 0e28f34c1a Add general logging event to be used by the RequestHandler (#633) 2018-03-06 21:18:49 -08:00
pan-wang c833e7b994 change the logic on handling configuration change and adds shutdown logic (#610) 2018-03-06 16:47:02 -08:00
Nate McMaster e552b5861a
Switch default implementation of Pbkdf2 on Linux/macOS to Rfc2898DeriveBytes (#301)
Requires adding .NET Core 2.0 target framework to the package because only SHA1 is supported in .NET Standard 2.0
2018-03-06 09:31:03 -08:00
Justin Kotalik 4e8a9d2493
Move reading and writing of Pipelines to a single loop; Cancel Read every time we write. (#582) 2018-03-04 19:52:41 -08:00
pan-wang cbffeb33ea
fixing a stress issue (#619) 2018-03-02 17:34:09 -08:00
Nate McMaster 19c38d0af0
Merge branch 'release/2.1' into dev 2018-03-02 13:57:53 -08:00
pan-wang 17dd3e85cb
fix missing event log descriptions (#622) 2018-03-01 20:53:57 -08:00
Ben Adams 300453396a Pass StringValues via in (#2295) 2018-02-28 19:54:44 -08:00
Pavel Krymets 2dac2e34fa
Reac to pipes in corefx (#618) 2018-02-28 12:42:09 -08:00
Pavel Krymets 2c108d9ba1
React to pipes in corefx (#2337) 2018-02-28 12:41:51 -08:00
pan-wang fcbe74fbf1
fix coding guideline issue. Use BOOL instead of bool (#620) 2018-02-28 12:02:15 -08:00
Nate McMaster 9bd4a67f7d Remove Microsoft.NETCore.Platforms from tool package nuspec 2018-02-28 11:05:50 -08:00
Ajay Bhargav Baaskaran 63f0322810 Allow whitespace and backslash in path 2018-02-27 15:24:36 -08:00
pan-wang 71b90a31a9
websocket enabled check (#612) 2018-02-27 11:28:27 -08:00
pan-wang 792b72e71a
adding error description which was commented out previously (#613) 2018-02-27 09:41:09 -08:00
Justin Wyer 83bf2375b3 #2035 Do not await OnCompleted handlers before sending the Response (#2324) 2018-02-25 18:10:04 -07:00
Ben Adams de7e2a2573 Use enum for method rather than string compares (#2294) 2018-02-23 14:29:42 -08:00
Nikita Tsukanov 39951e892e Don't throw in HttpRequestStream.Flush (#2342)
Because read-only streams apparently can have Flush semantics and this behavior is expected by some of built-in stream wrappers (e. g. CryptoStream)

https://github.com/dotnet/corefx/pull/27327#pullrequestreview-98384813
https://github.com/aspnet/KestrelHttpServer/issues/2341
2018-02-23 09:51:09 -08:00
Ben Adams 6728e756b7 Sanitize and centralize exception throws (#2293)
* Sanitize and centralize exception throws
2018-02-23 09:24:20 -08:00
Ben Adams 6252ffd86a Flatten exception handling (#2313)
3 nested try blocks with 3 finallies in same function O_o
2018-02-22 16:46:18 -08:00
Ben Adams c57784447e Speed up TryGetAsciiString (#1973)
* Widen
* Remove TryGetAsciiStringVectorCheckShifts
* Add Span version to benchmarks
2018-02-22 16:45:31 -08:00
Ben Adams c0f88ebdc1 Faster IFeatureCollection.Get<TFeature> (#2290) 2018-02-22 16:44:38 -08:00
Nate McMaster 590c621c6f
Update README to reflect that dotnet-watch et. al. are bundled in the CLI 2018-02-22 12:55:03 -08:00
pan-wang dc62b9ba38
adding mof file for freb log (#603) 2018-02-22 11:14:29 -08:00
Justin Kotalik 4775706bbc
Add version numbers on aspnetcore.dll and aspnetcorerh.dll, remove unnecessary files (#601) 2018-02-22 10:03:51 -08:00
Nate McMaster 70dcbf6ed6
Add UnprotectKeysWithAnyCertificate 2018-02-22 08:50:03 -08:00
pan-wang 782b563a58
fixing empty logfile name in event log (#602)
Empty log file path was logged as we reset the stru too earlier. Changing the code order
2018-02-21 14:08:26 -08:00
Justin Kotalik 21b1febf2b
Adds environment variable feature for inprocess (#583) 2018-02-21 12:36:39 -08:00
pan-wang 1f6e2c8029
grant the config setting on 502.5 page setting (#600)
grant the config setting on 502.5 page setting
2018-02-21 11:27:48 -08:00
pan-wang e3d3b088ae
adding logging for outprocess start and application recycle (#573)
adding logging for outprocess start and application recycle
2018-02-21 10:58:34 -08:00
David Fowler 3fc69dc71f
Updated Streams to override Memory and Span overloads (#2333)
- Also plumbed Memory/Span through Kestrel over ArraySegment.
- Throw synchronously from the HttpRequestStream instead of async in some cases.
2018-02-21 00:00:46 -08:00
Justin Kotalik ff496ca580
Fix absolute paths to dotnet (#597) 2018-02-20 15:03:37 -08:00
Justin Kotalik c395db12e6
Fix path searching for where.exe and request handler parsing (#595) 2018-02-20 08:10:13 -08:00
brightcr a72e5db797 Removed code to set response headers - connection and upgrade as it should be set by caller e.g. WebSockets Middleware (#2329) 2018-02-19 08:36:28 -08:00
Ben Adams 1f8591184e Use ReferenceEquals not MulticastDelegate.equals (#2330)
It never inlines because its such a chunky method
2018-02-17 08:13:15 -08:00
Mike Harder 4afaa386db
Remove unnecessary usings (#2326) 2018-02-16 14:04:16 -08:00
Nate McMaster eea8c1a146
Support decrypting keys with X509Certificate that is not in the X509Store
The default implementation of EncryptedXml doesn't support using the RSA
key from X509Certificate to decrypt xml unless that cert is in the X509
CurrentUser\My or Localmachine\My store. This adds support for
decrypting with the X509Certificate directly. This is useful for Linux
(often Docker) scenarios, where the user already has a .pfx file, but
may not have added it to X509Store.
2018-02-16 12:11:20 -08:00
Justin Kotalik 87c3ca4752
Send stderr logs to anonymous pipe instead of file when logging is disabled. (#549) 2018-02-15 18:43:06 -08:00
Alessio Franceschelli 14332c5daf Allows Content-Length for 304 Not Modified response (#2321) 2018-02-14 16:01:07 -08:00
Justin Kotalik 4ca45d951f
Increment index by 1 as indexOf is inclusive when searching for dotnet.exe (#589) 2018-02-14 15:28:15 -08:00
Ryan Brandenburg a6165304b3 Add ExperimentalPackageVersion 2018-02-14 12:48:27 -08:00
Alessio Franceschelli 9341f72b8d Consumes request before closing connection (#2314) 2018-02-14 11:46:13 -08:00
Daniel Roth db8e0127c7 Remove hyphen from the dev-certs tool name 2018-02-13 09:33:02 -08:00
David Fowler 2156030460
Clean up some of protocol abstractions (#2311)
* Clean up some of protocol abstractions
- Renamed PipeConnection to DuplexPipe
- Removed MemoryPool from ConnectionContext
- Work around value tuple issue on net471
2018-02-10 10:39:21 -08:00
Nate McMaster a64672d6e9 Ensure publish directory is cleaned when /t:Clean is executed [ci skip] 2018-02-09 09:57:44 -08:00
Joshua Clark 5dd590e75e Add clearer exception message to HttpResponseStream ODE (#2305) 2018-02-08 17:28:00 -08:00
Redouane Sobaihi 8f25c4e8ca Include limits default values in intellisense comments. (#2304) 2018-02-08 11:37:01 -08:00
Justin Kotalik 9162ab3436
Default to using program files if where.exe doesn't find dotnet.exe (#578) 2018-02-06 12:12:23 -08:00
PRIYANSHU AGRAWAL 5aa3529dcb Merge PR #297 - minor code cleanup - remove duplicate allocation of DateTimeOffset 2018-02-06 08:18:12 -08:00
Justin Kotalik e035d0ed96
Fail fast on .NET Full Framework and log exceptions in hostfxr utility (#533) 2018-02-04 20:54:12 -08:00
Justin Kotalik 462c1c042a Merge remote-tracking branch 'origin/release/2.1' into dev 2018-02-02 16:23:54 -08:00
Justin Kotalik 5465216be9
React to hostfxr api changes (#577) 2018-02-02 16:07:51 -08:00
John Luo 1c31731d89 Merge branch 'release/2.1' into dev 2018-02-01 15:01:46 -08:00
John Luo e4e837fa24 Flatten dependencies of Microsoft.AspNetCore.All metapackage
Remove BrowserLink from Microsoft.AspNetCore.App
Remove version locking in .All metapackage
2018-02-01 11:51:27 -08:00
Nate McMaster 864ee50b4c Merge branch 'release/2.1' into dev 2018-02-01 10:40:07 -08:00
Nate McMaster 2233481d34 Ensure all packages are included in ArtifactInfo 2018-02-01 10:24:07 -08:00
John Luo 4c79a2fe59 Merge branch 'release/2.1' into dev 2018-01-30 12:04:18 -08:00
Pavel Krymets ddf3e948ad Merge release/2.1 2018-01-30 09:54:23 -08:00
Pavel Krymets 261b5836c1 Merge release/2.1 2018-01-30 09:39:33 -08:00
John Luo 818bb50e43 Update metapackages
.All will include all assets from .App

.All and .App will check TFM compatibility during inner builds

Remove unused runtime store templates
2018-01-29 17:40:19 -08:00
Pavel Krymets bc1a60704b
React to pipeline changes (#570) 2018-01-29 14:35:22 -08:00
Pavel Krymets a84095e5c3
React to pipelines changes (#2275) 2018-01-29 14:34:48 -08:00
David Fowler 8ea181f088
Use the OnWriterCompleted and OnReaderCompleted events directly. (#2280) 2018-01-29 14:27:47 -08:00
Pranav K c24b577175 Merge remote-tracking branch 'origin/release/2.1' into dev 2018-01-29 13:54:35 -08:00
Nate McMaster 011cf720e6 Add IServerVariablesFeature
Enables fetching variables directly from IIS when using in-process
hosting. This is not available for out-of-process hosting.

Other changes:
 - Update tests to only run if IIS Express has been updated to support
 the new schema for hostingModel
 - Add a simpler test fixture for in-proc testing
2018-01-29 12:51:26 -08:00
David Fowler 50b396cec6
Fixed race in sockets transport (#2279)
- Based on the changes you made earlier (f4d27e6), we trigger OnConnectionClosed before the socket is disposed in the SocketTransport. This moves the call to Output.Complete to happen after and thus fixes the race.
2018-01-29 12:41:45 -08:00
Pranav K b37880c985 Downgrade version of analyzers 2018-01-29 12:24:18 -08:00
Justin Kotalik 5d4fd2a592
Add project capability in 2.1 M.A.App for inproc hosting (#796) 2018-01-28 16:59:16 -08:00
Javier Calvarro Nelson 8280c1b73f Update Kestrel HTTPS developer certificate error message 2018-01-26 12:55:15 -08:00
Justin Kotalik 6f54ed1c68
Merge pull request #560 from aspnet/release/2.1 2018-01-26 12:50:45 -08:00
Andrew Stanton-Nurse a6fc4776da
fix Kestrel version to fix build (#227) 2018-01-26 12:27:41 -08:00
Justin Kotalik 85ec92012a
Remove AspNetCoreHostingModelProperty (#561) 2018-01-26 10:25:05 -08:00
Justin Kotalik 2181fdc943
Invoke where.exe to find dotnet.exe (#559) 2018-01-26 10:16:05 -08:00
Justin Kotalik 06348dded7
Change request timeout validation to 1 second. (#546) 2018-01-24 17:18:23 -08:00
Nate McMaster af8d61395f
React to changes in package layout requirements for global CLI tools (#385) 2018-01-24 16:09:20 -08:00
Chris Ross (ASP.NET) 4fd4fd9f41 Mark HTTP/2 as not supported with an AppContext switch override. 2018-01-24 15:29:59 -08:00
pan-wang d61a4ca89f
some fix for handling configuration change and recycling (#539) 2018-01-24 15:21:09 -08:00
Andrew Stanton-Nurse 6bc49ad6ca
update to use corefx package (#222) 2018-01-23 19:57:28 -08:00
Justin Kotalik 3d167c1e6c
Run http request on separate thread. (#545) 2018-01-23 14:56:47 -08:00
Sourabh Shirhatti 10f0f7b2ee Add project capability for inproc hosting (#532) 2018-01-23 14:05:27 -08:00
Pranav K 13cf9f76bd Add support for building Microsoft.AspNetCore.Analyzers metapackage 2018-01-22 13:54:50 -08:00
Justin Kotalik 6b4673bbdc
Fixes bitness alignment issue for 32bit (#527) 2018-01-19 17:39:42 -08:00
Justin Kotalik d7d502a04c
Free stdout after app closes (#535) 2018-01-19 15:52:21 -08:00
pan-wang d85ed094aa
gracefully shutdown the filewatcher thread (#530) 2018-01-19 14:31:51 -08:00
= 564e049ae9 Build Microsoft.AspNetCore.App
- Produce .App and .All metapackages and shared frameworks
2018-01-19 11:32:30 -08:00
Justin Kotalik 2204989660
Always load hostfxr parameters if the app isn't loaded (#529) 2018-01-19 09:59:04 -08:00
Stephen Halter 526dfdb332
Switch back to libuv as the default transport (#2257)
* Switch back to libuv as the default transport
2018-01-18 17:25:28 -08:00
Justin Kotalik 694411f79e
Fixing a typo (#279) (#523) 2018-01-18 13:50:34 -08:00
Justin Kotalik ab7ec622ef
Make paths absolute for in-process, fix relative path check (#513) 2018-01-17 16:43:49 -08:00
Pavel Krymets f8192fd63c
Workaround corefx/26390 (#295) 2018-01-17 10:39:07 -08:00
Stephen Halter cf371a4e74
Disable heartbeat warning when debugger is attached (#2258) 2018-01-16 18:11:11 -08:00
pan-wang 7b65bdb6ef
Panwang/addinglog (#508)
* adding windows event log

* adding windows event log

* fix a wrong bool variable

* some updates

* fix bad merge
2018-01-16 17:21:47 -08:00
Stephen Halter f4d27e67bb
Improve server shutdown logic (#2247)
Ensure connections abort when they don't close gracefully.
2018-01-16 16:43:45 -08:00
Javier Calvarro Nelson e6bb551018 Adds support for loading the developer certificate from a pfx file
* If we can't find a developer certificate on the certificate store
  we will look for a developer certificate on the file system if a
  password has been specified for the Development certificate.
* We will look at ${APPDATA}/ASP.NET/https/<<AppName>>.pfx for windows
  and fallback to ${HOME}/.aspnet/https/<<AppName>>.pfx
* In case the password wasn't specified through configuration, the file
  is not found on the file system or can't be loaded, we won't
  do anything.
2018-01-12 16:32:06 -08:00
= 1c4d23f79d Add TFM compatibility check to 2.1 metapackage 2018-01-11 12:37:11 -08:00
Javier Calvarro Nelson a036fa6bf4 Add support for cleaning certificates on the machine to the dev-certs tool 2018-01-11 11:26:39 -08:00
Chris Ross (ASP.NET) 420500e2a9 #2102 Always start the response before draining the request. 2018-01-09 15:59:19 -08:00
Steffen Forkmann 9a8dd6ef12 Allow Content-Length 0 for Websocket-Connection (#2217) 2018-01-09 15:01:09 -08:00
Justin Kotalik ee6256d941
Update sample to use aspnetcore.dll and aspnetcorerh.dll (#512) 2018-01-08 12:02:58 -08:00
Nate McMaster 48ed4a6997 Package aspnetcorerh in Microsoft.AspNetCore.Server.IIS 2018-01-08 10:15:06 -08:00
Chris Ross (ASP.NET) ad2149f5f0 Change ApplicationProtocol to ReadOnlyMemory<byte> #2182 2018-01-05 09:25:30 -08:00
Stephen Halter 664055fa43 Revert "Change ApplicationProtocol to ReadOnlyMemory<byte> #2182"
This reverts commit 2d3a01d48d.
2018-01-04 16:17:36 -08:00
Chris Ross (ASP.NET) 2d3a01d48d Change ApplicationProtocol to ReadOnlyMemory<byte> #2182 2018-01-04 15:26:40 -08:00
Justin Kotalik c3bc6fed9c
Adds RequestHandler dll and hostfxr changes from ANCM (#497) 2018-01-04 10:07:00 -08:00
Pavel Krymets 8cedb4eff3
React to pipeline changes (#503) 2018-01-04 10:01:16 -08:00
Pavel Krymets 1fa001e7db
React to pipeline changes (#2234)
React to pipeline changes
2018-01-04 09:54:42 -08:00
Justin Kotalik 5d8670243c
Use location of aspnetcore.dll rather than the activating process. (#500) 2018-01-03 11:49:43 -08:00
Justin Kotalik 119dee607b
Remove use of Dangerous Span calls for MemoryMarshal (#501) 2018-01-02 13:59:49 -08:00
Justin Kotalik d59b0ef38c Adds universe manifest and signing info 2017-12-29 12:48:01 -08:00
Murat Girgin 4e568c9266 Fixing a typo (#279) 2017-12-29 12:48:01 -08:00
Nate McMaster 261b27b700 Port CLI tools to be dotnet global tools
- Rename package IDs to dotnet-watch, dotnet-user-secrets, and dotnet-sql-cache
- Change packaging layout to support dotnet-install-tool
- Change package metadata to DotnetTool
- Drop support for DotNetCliToolReference (those will continue to be available under previous package ID's)
- Rename project files and folders
2017-12-29 08:42:36 -08:00
Justin Kotalik f27190a1f1 Adds InProcessHandler to calls, Refactor to remove IHttpContext completely 2017-12-22 13:36:34 -08:00
Chris Ross (ASP.NET) dfaf37cbba Implement config support #1290 #1879 #2016 #2166 #2167 #2188 2017-12-21 09:12:32 -08:00
ASP.NET CI fa9d7a7e8c Update dependencies.props
[auto-updated: dependencies]
2017-12-20 13:46:28 -08:00
BrennanConroy 2cf020103a Update to new corefx packages (#486) 2017-12-20 13:46:27 -08:00
pan-wang 30bbd87d81 Panwang/refactor (#277)
* Init check in for refactoring

* clean up to make app_offline work

* update loadassembly and build

* add configpath to aspnetcore_config to make recycle work

* Adds in process component to refactor (#249)

* outprocess first checkin (still missing marjor components)

* Adds In-Process support for shimmed module. (#257)

* Init check in for refactoring

* clean up to make app_offline work

* update loadassembly and build

* add configpath to aspnetcore_config to make recycle work

* Adds in process component to refactor (#249)

* outprocess first checkin (still missing marjor components)

* Adds In-Process support for shimmed module. (#257)

* load from bin start and catch unhandled exception

* Fixes request handler vcxproj

* Adds request handler to nuget package

* build issues

* outofprocess refactoring

* adding logging support

* enforce Warning As Error for build and enable process recycle for outofprocess

* fix AV for win32 build and update build flags

* Fixed m_srwLock lock issue

* remove dealock in loadmanagedapp and remove UseMFC

* Readd lost exception catching

* nuget package issue and status code

* fixing warnings

* Adds Headers

* removing web sockets exe for now

* remove flags

* nuspec stuff

* spelling

* only look in inetsvr for now (or same folder)

* rename method

* terminte thread before closing the handle to it

* couple changes related with AV

* null check and Kill thread for in process if dotnet timed out

* fix recursive lock issue reported by appverifier

* client disconnect support AV fix

* flow 502.5 process start failure error page

* Feedback from inperson code review
2017-12-20 13:46:27 -08:00
Pavel Krymets 3a0a133a02
Remove use of Dangerous* Span APIs and use MemoryMarshal instead (#2228) 2017-12-19 11:33:39 -08:00
Chris Ross (ASP.NET) d505d20ba7 Merge Kestrel.Https into Kestrel.Core. Fix sample. 2017-12-18 14:08:14 -08:00
Nate McMaster 2aaed28054
Rename dotnet-developercertificates to dotnet-dev-certs (#371) 2017-12-12 15:56:48 -08:00
Nate McMaster 1f3f010f87 Upgrade CLI tools to .NET Core 2.1 2017-12-12 14:37:47 -08:00
BrennanConroy 95dc8824c3
Upgrade package references and react to corefx API changes (#2212) 2017-12-11 09:02:37 -08:00
Justin Kotalik 8949f49637 merged 2017-12-07 18:55:29 -08:00
John Luo 911264eb04 Clean up shared framework generation. 2017-12-07 11:00:24 -08:00
John Luo e0daa126e2 Produce aspnetcore shared framework 2017-12-05 12:15:30 -08:00
Stephen Halter 668f8e3b4b
Lazily allocate protocol-specific connection objects (#2190)
* Refactor Http[12]?Connection
2017-12-04 15:59:12 -08:00
David Fowler b8a1c04ffb
Make the HttpParser a singleton (#2203)
- It's completely stateless so make it a singleton
- Fixed tests
2017-12-03 13:27:36 -08:00
Ryan Brandenburg 7c2c5f2bef EnableApiCheck for Kestrel.Https (#2198) 2017-11-30 18:36:35 -08:00
Pranav K f121d9c688 Split out version specification from ExternalDependency initialization 2017-11-30 16:31:55 -08:00
Nate McMaster 6f096a18af Import dependencies.props when building the metapackage 2017-11-29 13:02:37 -08:00
Tornhoof 5e9e3a8574 Make sure to add whitespace after the status code even if the reasonphrase is empty (#2184) 2017-11-29 12:30:27 -08:00
Nate McMaster 98de3aa50d
Suppress API check due to reflection load errors (#2185)
[ci skip]
2017-11-28 11:04:08 -08:00
David Fowler ce68427050
Use ALPN support in SSLStream on .NET Core >= 2.1 (#2179)
- Always add the TlsConnectionFeature when the HttpsConnectionAdapter runs
- Implemented the ITlsApplicationProtocolsFeature on the existing TlsConnectionFeature
- Removed Kestrel.Tls
2017-11-27 09:11:39 -08:00
Chris Ross 8e1da5d1f6
Expose WebHostBuilderContext in UseKestrel #1334 (#2177) 2017-11-22 10:19:17 -08:00
Pranav K db8adaf5b7 Remove uses of aspnetcore-ci-dev 2017-11-22 09:28:47 -08:00
David Fowler a1d75df47d Use new Memory<byte> APIs on SocketAsyncEventArgs (#2173)
- This should improve the performance of handling buffers by (eventually)
removing GCHandle churn for Kestrel's already pinned buffers.
- Made the Sockets transport target both netcoreapp2.1 and netstandard2.0 to use new
APIs
- Disable API check for the sockets transport
2017-11-20 11:36:09 -08:00
Stephen Halter 67fc879c54
Null out send buffer less (#2164) 2017-11-17 12:41:35 -08:00
Chris Ross (ASP.NET) 89d1862f21 #2139 Add ListenLocalhost and ListenAnyIP 2017-11-16 16:14:17 -08:00
Justin Kotalik 85ea220c4e
Fixes dotnet.exe string as runtime now reads it (#246) 2017-11-16 15:05:32 -08:00
pan-wang 9e345ad43f
fix build issue (#248) 2017-11-15 21:59:54 -08:00
Javier Calvarro Nelson 6c4427cde5 Added a package for generating HTTPS Certificates on CLI first run scenarios 2017-11-15 18:20:17 -08:00
Andrew Stanton-Nurse 065e9bb57a
Update "temporary" OpenSSL wrapper to support 1.1, and add HTTP/2 sample with docker (#2149) 2017-11-13 15:54:16 -08:00
Pavel Krymets b8c3d26975
Migrate to new pipe APIs (#454) 2017-11-13 15:06:22 -08:00
Pavel Krymets 73a37363e1
Migrate to new pipe APIs (#2124) 2017-11-13 15:04:54 -08:00
Javier Calvarro Nelson eac0e2d03b Add support for detecting when the user cancels the trust prompt and a mode to check for the validity and trust of existing certificates 2017-11-13 10:28:46 -08:00
Justin Kotalik 82e096c9a5
Adds windows auth support (#241) 2017-11-10 17:07:56 -08:00
Justin Kotalik 552163ab77
Adds windows Auth support (#471) 2017-11-10 17:02:31 -08:00
Nate McMaster dae1f1ce78 Merge branch 'rel/2.0.3' into dev 2017-11-08 16:31:07 -08:00
Andrew Stanton-Nurse 89fa8f0fa2 Revert "Open ssl pfx (#2150)"
This reverts commit 41abe63c10.
2017-11-07 15:48:49 -08:00
Tim Seaward 41abe63c10 Open ssl pfx (#2150) 2017-11-07 14:49:02 -08:00
Stephen Halter 238da2742d
Use SocketAsyncEventArgs to improve perf (#2147) 2017-11-07 14:43:14 -08:00
arerlend 70c8133fce allow paths that contain '.' (#125)
* allow paths that contain '.'

* remove InvalidPathWithDotShouldThrowException test
2017-11-07 11:24:52 -08:00
Justin Kotalik 9c065bf107
Remove header serialization in favor of setting IIS response directly. (#465) 2017-11-06 20:28:40 -08:00
Justin Kotalik 6bfcd4a2d4
Remove header serialization in favor of setting IIS response directly. (#228) 2017-11-06 20:28:08 -08:00
George Chakhidze c315b27ad9 Fix the uninitialized g_hWinHttpModule global variable to avoid empty error messages (#225) 2017-11-06 10:16:08 -08:00
David Fowler 08186bb198
Use ipv4 when binding to ANCM port (#470)
- Today we use localhost which binds to both the ipv4 and ipv6 addresses.
ANCM never communicates over ipv6 so it's pointless. This should also properly crash
the process if the ipv4 address fails to bind (which we've seen reports in real applications for).
2017-11-03 10:24:41 -07:00
Nate McMaster 5bbab01ba5 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 16:52:00 -07:00
Justin Kotalik a42c8a33b8
Return FINISH_REQUEST on request failure (#469) 2017-11-01 15:48:04 -07:00
Nate McMaster 6c82f78c65 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 15:18:49 -07:00
Nate McMaster 478c640a68 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 15:11:36 -07:00
Nate McMaster bcc10d3012 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 14:59:02 -07:00
Nate McMaster d687617a35 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 09:29:41 -07:00
Nate McMaster 49b2e22ab3 Pin tool and package versions to make builds more repeatable 2017-11-01 09:09:28 -07:00
Nate McMaster 1836201bee Pin tool and package versions to make build more repeatable 2017-10-31 17:33:49 -07:00
Stephen Halter 0c34523e8b
Log exception after critical accept loop error (#2140) 2017-10-31 11:09:11 -07:00
pan-wang 2cd59f86c4
client disconnect change (#223) 2017-10-30 10:35:56 -07:00
Tom Deseyn eeb49c2af7 Pass setsockopt fd as int (#2136) 2017-10-26 11:40:52 -07:00
Andrew Stanton-Nurse ab78fb0b8c fix build break 2017-10-25 15:22:36 -07:00
Cesar Blum Silveira 8c4bdbcf6b Add "zero config" HTTPS support using local development certificate. (#2093) 2017-10-25 13:59:09 -07:00
Stephen Halter c3ba875d12 Better handle Socket transport accept errors (#2133)
* More reliably swallow accept errors during shutdown
* Handle and log connection reset errors thrown from accept
* Don't trace errors for server-aborted connections
2017-10-25 12:58:00 -07:00
Justin Kotalik 9c5d38a786 Expose VirtualDirectory to In Process mode (#210) 2017-10-25 12:35:47 -07:00
Justin Kotalik 94c895a1bd Parse Path and PathBase from Virtual Directory. (#457) 2017-10-25 12:35:13 -07:00
Andrew Stanton-Nurse 1678c54291 Add some tracing and increase timeout for flaky test (#2130) 2017-10-25 11:56:43 -07:00
Justin Kotalik bd62aa88d7 React to ANCM OnAsyncCompletion changes (#447) 2017-10-25 11:46:55 -07:00
Justin Kotalik 332b108f41 Changes PostCompletion to handle OnAsyncCompletion after managed request has completed. (#212) 2017-10-25 11:46:34 -07:00
Andrew Stanton-Nurse 7d205d1093 add event names to Logging messages (#2132) 2017-10-25 11:27:05 -07:00
pan-wang bfb2c86cda moving export methods to a standalone file (#211) 2017-10-23 16:26:15 -07:00
pan-wang c845a331bb adding forwarding end freb event (#209) 2017-10-23 15:28:48 -07:00
Andrew Stanton-Nurse 30010a103b Fix for #2085 - "The Detaskening" (#2123) 2017-10-23 10:52:02 -07:00
pan-wang 448a2afed8 fix the AV in recycle process, issue #192. (#201)
* fix the AV in recycle process. this is due to we call Recycle again when the background thread exists

* more fixes

* reset hosting mode when all applications got removed
2017-10-21 13:40:45 -07:00
Jass Bagga e46ba481c8 Throw JsonSerializationException from converters (#116) 2017-10-19 13:32:04 -07:00
Jass Bagga 8eefe0fdc2 Add Test Operation (#114)
Addresses #1
2017-10-19 10:46:08 -07:00
Cesar Blum Silveira 3fbfba63f8 HTTP/2: implement 100-continue (#2106) 2017-10-18 16:31:50 -07:00
Stephen Halter c57aa3b2a8 Treat more exceptions from Socket.ReceiveAsync as aborted connections (#2122) 2017-10-18 12:40:37 -07:00
Justin Kotalik 68014a7acd Changes async calls to use OnAsyncComplete event pattern (#184) 2017-10-17 16:06:59 -07:00
Nate McMaster 4bb84cf6d0 Ensure the deb/rpm installers use the same dotnet-core version
- Remove unnecessary tasks and scripts
 - Ensure the KOREBUILD_DOTNET_* environment variables are preserved in the docker build context
 - Other MSBuild cleanup of the targets
2017-10-17 15:46:53 -07:00
pan-wang 7117147a09 adding FREB and more ETW log (#185)
* adding FREB log and more ETW logs

* add missing aspnetcore_event.h file from previous commit

* Update aspnetcore_event.h

change provide id as 0x8000 is used by cors
2017-10-17 14:43:31 -07:00
Javier Calvarro Nelson ff0f112d7b Add HTTPS developer certificate management tool 2017-10-17 11:22:32 -07:00
Stephen Halter 733ac1efab Handle EPIPE like ECONNRESET on Linux (#2112) 2017-10-13 15:07:21 -07:00
Nate McMaster 446de15f0b Add aspnet/Templating to the universe build 2017-10-12 18:02:16 -07:00
Cesar Blum Silveira 9dfffd14bb HTTP/2: support trailers. 2017-10-12 17:26:20 -07:00
Stephen Halter 66a3c9496a Set SO_REUSEADDR on managed listen sockets on Unix (#2111)
- https://github.com/dotnet/corefx/issues/24562
2017-10-12 12:26:52 -07:00
Cesar Blum Silveira deed6c9780 HTTP/2: add exception error messages and log them. 2017-10-12 11:23:57 -07:00
Stephen Halter fdb4184dbf Sockets transport (#2100)
* Make Sockets the default transport
* Create separate Libuv and Sockets functional test projects
* Fix functional tests that fail with Sockets
* Moved OneToTenThreads test to Kestrel.Transport.Libuv.Tests
* Fix systemd activation tests to use libuv transport
* Dispose Sockets PipeFactory
* Improve Socket's server-side abort handling
* Add explicit rebinding test
2017-10-11 15:14:35 -07:00
Jass Bagga f1efb29b18 Use ContractResolver instead of forcing to lower case (#112)
Addresses #90
2017-10-11 14:09:35 -07:00
Cesar Blum Silveira d46d2ce193 HTTP/2: validate request headers prior to starting new stream. 2017-10-10 13:12:34 -07:00
Nate McMaster 611b6a23ad Update how PackageReference versions are set
Changes:
 - Remove floating versions
 - Disable myget feeds during a Universe build
 - Use package-specific MSBuild variables. Pattern = `packageId.Pascalize() + "PackageVersion"`, with a few exceptions.
 - Remove myget feeds during build
 - Remove obsolete 'GenerateLineup' targets/tasks
2017-10-09 11:32:21 -07:00
Justin Kotalik f91a941f8d Moves in-process to UseIISIntegration, removes Server.IIS namespace (#443) 2017-10-06 09:52:42 -07:00
pan-wang 746f578c3c Panwang/inproc (#174)
refactoring the code to support inprocess (step 1) with app_offline and Graceful shutdown support
2017-10-04 17:35:11 -07:00
Cesar Blum Silveira 11ce1395e5 HPACK fixes and improvements. 2017-10-04 12:59:41 -07:00
Stephen Halter 156ddfc4e8 Fix EOF handling of TlsStream.ReadAsync (#2094) 2017-10-04 12:38:19 -07:00
Justin Kotalik ea7bc30dd3 Avoid AV if schema change doesn't exist. (#177) 2017-10-03 14:21:39 -07:00
John Luo 37c12d5a64 Add sources
for the final time
2017-10-03 11:46:57 -07:00
John Luo f6fa111333 Another attempt 2017-10-02 19:18:12 -07:00
= 11b25e7c87 Build and pack Runtime Store
- Also add targets to build all metapackage.
2017-10-02 16:43:30 -07:00
Justin Kotalik 9dc69fe361 Adds support for ANCM in process (#425) 2017-10-02 16:01:46 -07:00
Cesar Blum Silveira 1b1137b880 HTTP/2: connection error when receiving frames disallowed by stream states. 2017-10-02 10:24:57 -07:00
Cesar Blum Silveira bb9840a552 HTTP/2: do not ACK PING frames received with ACK set. 2017-09-29 16:40:01 -07:00
Cesar Blum Silveira 551c1ebc0b Configure enabled protocols per endpoint and add HTTP/2 w/ prior knowledge support (#2067). 2017-09-27 10:14:39 -07:00
Nate McMaster f3bb4080b0 Use CustomAfterMicrosoftCommonTargets in dotnet-user-secrets 2017-09-26 11:59:29 -07:00
Nate McMaster 3dd029a8b5 Simplify the MSBuild targets in dotnet-watch
Use CustomAfterMicrosoftCommonTargets instead of MSBuildProjectExtensionsPath.
 - No more need to write to obj/$(Project).g.dotnetwatch.targets
 - Works on project that have changed default file locations via BaseIntermediateOutputPath

Simplify DotNetWatch targets
 - Condense to one targets file
 - Simplify dependency chain of targets
 - Build project references in a parallel
2017-09-26 11:59:29 -07:00
Javier Calvarro Nelson eb9417b577 Re-enable API Check 2017-09-25 15:16:53 -07:00
Justin Kotalik f130330db8 Updating Xunit and dotnet versions (#143) 2017-09-25 15:10:31 -07:00
Javier Calvarro Nelson 49237c7651 Add API check baselines for 2.0 2017-09-25 15:03:09 -07:00
Cesar Blum Silveira 343ce0f01b HTTP/2: close connection with PROTOCOL_ERROR when a stream depends on itself. 2017-09-22 16:35:12 -07:00
Chris Ross 8a01a1f790 Remove explicit LangVersion (#345) 2017-09-21 15:09:22 -07:00
Cesar Blum Silveira e3533885a8 HTTP/2: close connection with PROTOCOL_ERROR when receiving a frame with an even stream ID. 2017-09-21 12:26:09 -07:00
Cesar Blum Silveira a4887f4caf HTTP/2: close connection with PROTOCOL_ERROR when receiving GOAWAY frame with non-zero stream ID. 2017-09-21 11:57:31 -07:00
Cesar Blum Silveira fc56552b2a HTTP/2: close connection on PING frame with non-zero stream ID. 2017-09-21 11:23:15 -07:00
Cesar Blum Silveira 555a881cb7 HTTP/2: close connection with PROTOCOL_ERROR when an unknown frame type is interleaved with headers. 2017-09-21 11:20:52 -07:00
Cesar Blum Silveira e2af346733 HTTP/2: close the connection with PROTOCOL_ERROR when a PUSH_PROMISE frame is received. 2017-09-21 11:20:33 -07:00
Justin Kotalik 2e540341db Adds in-process mode to ANCM. (#152) 2017-09-20 16:09:56 -07:00
Cesar Blum Silveira 9687079723 Check if HTTP/2 frame writer has already been aborted. 2017-09-20 11:15:31 -07:00
Cesar Blum Silveira 9944c0fd43 Fix reading DATA frames with maximum length. 2017-09-20 11:15:31 -07:00
Cesar Blum Silveira c8f9364e3e Expose connection features to HTTP/2 connections. 2017-09-20 11:14:15 -07:00
Chris Ross (ASP.NET) 1e1e89b457 logging/#543 Clear HttpContext.User when the user is disposed. 2017-09-19 15:55:14 -07:00
Pavel Krymets 46dadbb186 Make RegistryPolicyResolver an interface to fix 3d party DI (#275) 2017-09-18 13:43:45 -07:00
Cesar Blum Silveira a31d1e024c Merge code paths duplicated between HTTP/1.x and HTTP/2 implementations (#2017).
- Most of the shared code is in the HttpProtocol class (former Frame)
- Virtual calls handle protocol-specific things
- Move the ProcessRequestsAsync loop to HttpProtocol
- Implement HTTP/1.x request processing in Http1Connection and HTTP/2
  in Http2Stream, with Http1Connection<T> and Http2Stream<T> subclassing
  those classes in order to handle the generic HttpContext parameter
- Split MessageBody into Http1MessageBody and Http2MessageBody,
  with MessageBody containing shared member variables and methods
2017-09-14 17:35:57 -07:00
Justin Kotalik 5c2906a7c6 [WIP] Fixing win7 compilation issues. (#141) 2017-09-13 14:40:00 -07:00
pan-wang a732b106f5 Fix websocket close handshake issue and race condition when websocket client disconnect without close handshake (#151) 2017-09-11 18:44:15 -07:00
Justin Kotalik 509ddc6ced Adds ANCM in-process flag. (#144) 2017-09-11 15:30:54 -07:00
Jass Bagga bf5c043de3 Refactor GetPath in JsonPatchDocumentOfT (#107)
Addresses #98
2017-09-11 09:54:29 -07:00
Pavel Krymets ee009982dc Add KeyVault encryption to DataProtection (#273) 2017-09-11 08:51:56 -07:00
Stephen Halter 1e465e9643 Improve timeout logic 2017-09-08 12:50:01 -07:00
Vladimir Sadov f0ade24cf7 Updating to new toolset compiler. (#2043)
* Updating to new toolset compiler.
Now includes ref escaping rules.

* newer version.
2017-09-06 15:52:47 -07:00
Jass Bagga 0f51c56c3f Combine ExpandoObjectAdapter and DictionaryAdapter (#106)
Use JsonDictionaryContract in the DictionaryAdapter and combine with ExpandoObjectAdapter
2017-09-05 16:07:25 -07:00
Luke Latham 6b8449f491 Sortable log files with stdoutLogFile (#131)
Fixes #130
2017-08-30 14:33:30 -07:00
Stephen Halter 284367db9f Improve ConnectionLimitMiddleware and connection pipeline building (#2010)
* Improve ConnectionLimitMiddleware and connection pipeline building
* Add IDecrementConcurrentConnectionCountFeature
* Flow connection features from connection middleware
2017-08-30 11:30:20 -07:00
Ben Adams e7743cbb78 Shorter LibuvThread locks (#2034) 2017-08-29 12:21:45 -07:00
Nate McMaster 82ba6b51ef Use PackageLineup to manage PackageReference versions 2017-08-29 12:08:10 -07:00
Nate McMaster 59290efa6a Use Directory.Build.props/targets 2017-08-29 12:06:04 -07:00
Nate McMaster 1297798546 Use PackageLineup to manage PackageReference versions 2017-08-29 11:38:56 -07:00
Nate McMaster 5cf936d3cd Use Directory.Build.props/targets 2017-08-29 11:36:17 -07:00
Nate McMaster 11377e08f6 Use PackageLineup to manage PackageReference versions 2017-08-29 09:42:24 -07:00
Nate McMaster 5178176219 Use Directory.Build.props/targets 2017-08-29 09:41:12 -07:00
Nate McMaster 9b45e7f118 Use PackageLineup to manage PackageReference versions 2017-08-29 09:16:24 -07:00
Nate McMaster 28acde451e Use Directory.Build.props/targets 2017-08-29 09:14:03 -07:00
Nate McMaster 97b9ff3b33 Use PackageLineup to manage PackageReference versions 2017-08-28 09:46:47 -07:00
David Fowler 9d8556e7c4 Added FrameConnection.OnConnectionClosed back (#2028) 2017-08-26 21:20:06 -07:00
David Fowler 7854c0604a Remove the events on ConnectionContext (#2023)
- Use the pipe events and removed the Tasks from ConnectionContext
- Remove OnConnectionClosed from FrameConnection. Since the `FrameConnetion` is a single middleware, not the entire pipeline, we shouldn't need to wait on the connection close there.
- It seems like the callbacks are rooted on the pipe even after they fire. This needs to be investigated in pipelines.
2017-08-26 20:19:55 -07:00
Ben Adams 09be7c416a Use preparsed version, rather than reparsing (#2021)
Current path is:

 Parser -> HttpVersion Enum -> Get Version String -> Set `HttpVersion` with string -> Convert back to Enum

Can just set the enum directly since its already parsed.

Also using the const rather than strings; where the strings are in code
2017-08-26 17:18:16 -07:00
Ben Adams 088f7e32ae Reset StatusCode & ReasonPhrase directly (#2025) 2017-08-26 17:14:45 -07:00
Nate McMaster 29fd1b3b33 Update README to show 2.0.0 as the latest packages
[ci skip]
2017-08-25 09:13:43 -07:00
Jass Bagga 3d6a8615de Support DynamicObject types (#99)
Addresses #38
2017-08-24 15:11:01 -07:00
Jass Bagga d4b64af0e6 Use DictionaryKeyResolver for ExpandoObjectAdapter (#100)
Addresses #102
2017-08-23 10:30:11 -07:00
David Fowler dc9ed60465 Create the connection logging scope in ConnectionHandler (#2013)
- Instead of doing it on the FrameConnection only. This will
make sure all middleware logs get the connection id as part of their scope.
2017-08-22 14:32:58 -07:00
Ben Adams 11a9b6498d Don't alloc IEnumerable in Reset for ITlsConnectionFeature (#2009)
* Don't alloc IEnumerable for ITlsConnectionFeature
* Delegate to ConnectionFeatures and determine scheme once
2017-08-21 17:01:05 -07:00
David Fowler 2e6687031d Added initial connection middleware pipeline (#2003)
* Added initial connection middleware pipeline
- Implemented IConnectionBuilder on ListenOptions. Kept IConnectionAdapter for now.
- Delay the configure callback for ListenOptions until the server has started.
- Added ConnectionLimitMiddleware and HttpConnectionMiddleware
- Expose ConnectionAborted and ConnectionClosed on ConnectionContext and
IConnectionTransportFeature
- Updated the tests
- Removed IConnectionApplicationFeature
- Moved Application to IConnectionTransportFeature
2017-08-21 12:11:27 -07:00
Nate McMaster a993c2a5ff Use PackageLineup to manage versions (revert revert)
We resolved the issues with PackageLineup and partial graph builds.
This reverts commit 01bf47170f.
2017-08-18 16:31:06 -07:00
Nate McMaster 01bf47170f Revert lineups change until we work out issues with PackageLineup
This reverts commit a2c0410e39.
2017-08-18 10:43:19 -07:00
Nate McMaster a4320ccbda Upgrade to xunit 2.3.0-beta4 2017-08-18 09:55:10 -07:00
Stephen Halter 14f122fb9f Measure Writing in FrameWritingBenchmark 2017-08-17 16:59:24 -07:00
Nate McMaster a2c0410e39 Use PackageLineup to manage package versions 2017-08-17 16:16:40 -07:00
Ben Adams 442ee80039 Less awaits for Reponse Write(Async) 2017-08-17 15:51:22 -07:00
Nate McMaster 87db7cceb6 Stop producing Microsoft.AspNetCore.Server.Kestrel.Tls as a package 2017-08-16 14:56:01 -07:00
Nate McMaster 26f1d4baa3 Use PackageLineup
PackageLineup is a way to manage PackageReference versions across large projects. It removes the version information from the repository and instead pulls the information from an external "lineup" file.
2017-08-16 14:10:43 -07:00
Cesar Blum Silveira 0fafd19ec9 Initial HTTP/2 support.
What works:

- HTTP/2 over TLS1.2 with ALPN
- Request and response flow
  - Headers are compressed and decompressed with HPACK
  - Request body can be read by streams (if present)
  - MVC template app with individual auth works fine
- PRIORITY frames are validated
- RST_STREAM frames are validated and abort streams
- SETTINGS frames are validated and ACKed
- PING frames are validated and ACKed
- GOAWAY frames stop connections
- WINDOW_UPDATE frames are validated
- CONTINUATION frames are sent for large header blocks

What doesn't work yet:

- Flow control in either direction
- It's not possible to encode a single header across more than one frame
  - Affects only a very large header (name and value combined ~16KB long)
- Request trailers
- Response trailers
- Limits and timeouts in `KestrelServerLimits` are not enforced on HTTP/2
- HPACK use is very limited on the send side
  - Literals are not Huffman-encoded
  - Common headers (e.g. "server: Kestrel") are never indexed
- Honoring client settings
- Some error checking is still missing (e.g. validating incoming frame size)
2017-08-16 10:04:44 -07:00
David Fowler 5c775073a4 Initial bedrock refactoring (#1995)
- Added Protocols.Abstractions
 - IConnectionHandler.OnConnection takes an IFeatureCollection instead of
 IConnectionInfo
 - Removed IConnectionContext and IConnectionInformation replaced with
 IConnectionTransportFeature
 - Updated FrameConnectionContext and FrameContext to have the relevant
 state instead of flowing the ConnectionInformation.
 - Updated tests
2017-08-16 00:02:48 -07:00
Pavel Krymets 659fa967a1 Consume corefxlab packages and private build of C# compiler (#1976) 2017-08-07 13:58:19 -07:00
pan-wang 93b37e14db fix websocket connection issue and some memory leak, and add debug print (#129) 2017-08-04 14:51:15 -07:00
Nate McMaster 6584a8b5fd Shorten folder names
Remove the Microsoft.AspNetCore.Server prefix from csproj and their folders. This is required to help us avoid max path issues on Windows.
2017-07-28 11:11:55 -07:00
Nate McMaster d058fe5a39 Fix StackOverflowException caused when creating the watcher on directories from a network share 2017-07-26 17:23:06 -07:00
Pavel Krymets fd6617d101 React to pipeline changes (#1969) 2017-07-26 15:51:06 -07:00
Ryan Brandenburg 5b85b3f6c7 Update VersionPrefix 2017-07-26 15:35:24 -07:00
Stephen Halter 09c92d61d0 Merge branch 'rel/2.0.0' into dev 2017-07-17 14:58:16 -07:00
Stephen Halter f0e572075b Fix FlushAsync when a ConnectionAdapter is configured (#1957)
* Also remove async void everywhere
2017-07-17 14:57:26 -07:00
Nate McMaster 76aa9b26fc Use async main in dotnet-watch 2017-07-13 11:55:07 -07:00
Chris R 5753784ac4 #391 Add back the DisplayName setting 2017-07-13 11:22:38 -07:00
David Fowler 7ebbdad974 Add support for connection scopes if logging is enabled (#1953)
* Add support for connection scopes if logging is enabled
- Don't create a scope if logging isn't on
- Copied the pattern we use in Hosting
2017-07-12 11:45:08 -07:00
Mike Harder 5618fa52d8 Update MSBuild to 15.3.0-* (#320)
- Matches version shipping with Visual Studio 15.3
2017-07-11 17:47:28 -07:00
Cesar Blum Silveira fd1758fdfc Make StopAsync multi-thread safe (#1666). 2017-07-11 14:29:50 -07:00
pan-wang 002c8b9bc9 Adding shutdown http message to support the scenario that ctrl signal is not allowed (#118) 2017-07-10 14:55:15 -07:00
Chris R c8bbbe764a #395 Add baseline and breaking change files 2017-07-10 09:41:31 -07:00
Cesar Blum Silveira eca4bfe6c3 Add response minimum data rate feature. 2017-07-07 22:37:25 -07:00
Nate McMaster 5185ebe45f Fix typo in type name (#1948) 2017-07-07 16:27:20 -07:00
Nate McMaster ec72c255f6 Make HttpsConnectionAdapter pubternal 2017-07-07 14:23:34 -07:00
Nate McMaster a3c157cb61 Validate certificate EKU when it is provided 2017-07-07 11:31:06 -07:00
Chris R 2e2dc67978 #390 Add back AutomaticAuthentication for opt-out. 2017-07-07 11:28:57 -07:00
Nate McMaster bd8a2c8a62 Add XML docs for the public HTTPs APIs shipping in 2.0 (#1942) 2017-07-07 10:40:39 -07:00
Aristarkh Zagorodnikov 00d17dea79 Domain socket handles (#1922)
* UvPipeHandle.Open(IntPtr) and underlying interop
* LibuvConstants.ENOTSUP
* IEndpointInformation.HandleType along with ListenOptions extra ctor and handle type re-specification
* Exception-based auto-detection of socket type in Listener, accept socket creation support for detected handle types in ListenerContext
* Added systemd Unix socket activation tests
2017-07-03 11:11:23 -07:00
Stephen Halter e9ffcdb414 Add feature to optionally disallow synchronous IO (#1919)
* Allow synchronous IO by default
2017-07-03 11:07:17 -07:00
Cesar Blum Silveira 81c2b57dda Increase default request min rate to 240 bytes/second (#1929). 2017-06-30 14:58:44 -07:00
Cesar Blum Silveira 68ba9a9445 Avoid torn reads from _frame.MinReadBodyDataRate in FrameConnection.Tick(). 2017-06-30 12:22:31 -07:00
Cesar Blum Silveira f2061ed716 Rename request body min rate APIs (#1901). 2017-06-29 17:16:34 -07:00
Hao Kung 824051cb28 React to auth 2017-06-29 16:29:00 -07:00
Jass Bagga 61505b88a5 Remove use of GetTempFileName (#313) 2017-06-28 12:11:17 -07:00
Nate McMaster 9b4be69e9d Do not enforce timeouts when the debugger is attached 2017-06-27 16:56:27 -07:00
Ajay Bhargav Baaskaran 379d6d8dcd Added some missed doc comments 2017-06-27 15:02:17 -07:00
John Luo 5155456653 Handle graceful shutdown from ANCM 2017-06-27 13:20:21 -07:00
pan-wang 6b411adbd0 revert the preserve host header change as it failed on Antares (#114) 2017-06-21 16:48:38 -07:00
Stephen Halter ea2f1033d3 Make Transport.Abstractions pubternal (#1911)
* Remove Sockets transport dependency from primary package
* Use deprecated travis images to keep systemd tests running

https://blog.travis-ci.com/2017-06-21-trusty-updates-2017-Q2-launch
2017-06-21 14:58:57 -07:00
Jass Bagga c816bce13a Refactor invalid operation exception handling (#87)
Addresses part of #80
2017-06-21 12:35:31 -07:00
Stephen Halter e1e7c9b810 Wait until the writer is complete to reset RequestBodyPipe (#1902) 2017-06-20 10:56:23 -07:00
Cesar Blum Silveira 892de7d4b8 Merge branch 'rel/2.0.0-preview2' into dev 2017-06-19 16:39:00 -07:00
Cesar Blum Silveira 7afd279a6d Don't pause and resume read timing on upgrade requests (#1904). 2017-06-19 16:37:47 -07:00
Nate McMaster 0dfb8e474a Remove named constraint from SqlCache tool (#310) 2017-06-19 15:10:21 -07:00
Nate McMaster 0742f56dbd Fix minor formatting error in help text for user-secrets 2017-06-17 13:45:20 -07:00
Nate McMaster 5d1a523682 Make ILoggerFactory an optional service on any DI-injected services 2017-06-13 15:15:19 -07:00
Nate McMaster 902783e202 Remove redundant property in dependencies.props 2017-06-13 11:29:31 -07:00
Nate McMaster abf05e2856 Docker: add warning when FileSystemXmlRepository saves a key to non-volume mounted folder 2017-06-13 11:04:52 -07:00
Nate McMaster ddd041b0f1 Remove DefaultKeyServices 2017-06-13 00:34:35 -07:00
pan-wang cee4cf7544 Antares blocks some windows APIs. We have use socket instead of calli… (#109)
* Antares blocks some windows APIs. We have use socket instead of calling GetExtendedTcpTable to check whether the backend is listening on given port.

* Use socket instead of calling GetExtendedTcpTable to check if the backend process listens on given port since Antares blocks couple APIs

* Antares blocks some windows APIs. We have use socket instead of calling GetExtendedTcpTable

* update format

* format change
2017-06-12 19:41:12 -07:00
Stephen Halter a97c08843c Complete IPipeWriter in OutputProducer.Abort() (#1894)
- This prevents MemoryPoolBlocks from leaking when writes fail
2017-06-12 11:12:01 -07:00
Stephen Halter d879518a18 Always complete RequestBodyPipe.Reader (#1893)
* Disable test that leaks blocks in debug builds
* Move some test helpers
2017-06-12 11:11:40 -07:00
Nate McMaster e7fa69d63c Minor cleanup: remove unnecessary conditional compilation line 2017-06-08 16:40:09 -07:00
Stephen Halter 31e5dfdcf0 Merge branch 'rel/2.0.0-preview2' into dev 2017-06-08 15:09:55 -07:00
Stephen Halter f67a105ff4 Update defaults in KestrelServerLimits doc comments (#1891) 2017-06-08 15:08:49 -07:00
Cesar Blum Silveira 48638cb1cd Merge branch 'rel/2.0.0-preview2' into dev 2017-06-08 15:01:34 -07:00
Cesar Blum Silveira fcc04f8c3d Add request body minimum data rate feature (#1874). 2017-06-08 14:36:03 -07:00
Pranav K 3f771ef0bc Remove usage of TaskCache (#1889)
* Remove usage of TaskCache
2017-06-08 13:47:01 -07:00
Nate McMaster f12054dfa7 Update Microsoft.AspNetCore.HtmlAbstractions to .NET Standard 2.0 2017-06-08 12:58:50 -07:00
Pranav K c267d192d6 Remove usage of TaskCache 2017-06-08 11:46:50 -07:00
Chris R 448e6787e2 Fix auth enabled check 2017-06-07 15:43:24 -07:00
Stephen Halter f96c48c08d Add a request body size limit (#1877)
- Implement IHttpMaxRequestBodySizeFeature
2017-06-07 11:48:56 -07:00
Nate McMaster ccef6b261b Lift Microsoft.Extensions.WebEncoders to target .NET Standard 2.0 2017-06-07 09:41:23 -07:00
Stephen Halter 6717f1674f Merge branch 'rel/2.0.0-preview2' into dev 2017-06-06 16:03:42 -07:00
Stephen Halter 89057003b3 Check IHttpMaxRequestBodySizeFeature.IsReadOnly (#379) 2017-06-06 16:02:36 -07:00
Kiran Challa d9531031a8 Updated to netstandard2.0 2017-06-06 12:03:01 -07:00
Chris R c261b37fda #371 Conditionally register auth scheme base on ANCM variable 2017-06-05 14:54:15 -07:00
Hao Kung 0390779084 Revert " #1875 Add Configuration support and tests."
This reverts commit c6e228d176.
2017-06-05 13:48:38 -07:00
Chris R c3ffde286b Clear MaxRequestBodySize 2017-06-05 11:23:08 -07:00
Ajay Bhargav Baaskaran 5d22a42a2a Merge branch 'rel/2.0.0-preview2' into dev 2017-06-02 15:22:48 -07:00
Ajay Bhargav Baaskaran ac3cbb5f8d Generated api check baselines for AzureStorage 2017-06-02 15:16:16 -07:00
Nate McMaster 34ea52068a Add --msbuildprojectextensionspath option to dotnet-watch
In the event someone wants to move the obj/ folder, MSBuild will not be able to locate dotnet-watch's generated targets. dotnet-watch cannot automatically find the obj folder (#244), so this command line switch allows users to point dotnet-watch to the right location.
2017-06-02 15:12:33 -07:00
Chris R c6e228d176 #1875 Add Configuration support and tests. 2017-06-02 12:30:12 -07:00
Nate McMaster fe83e69b1a Add a startup filter which initializes the key ring before the server starts 2017-06-02 11:31:16 -07:00
Nate McMaster 285b973a5c Use IHostingEnvironment to determine application identifier
Reverses changes made in #230
2017-06-02 11:27:25 -07:00
Ajay Bhargav Baaskaran 22ebf68f74 Enable Api check and added breakingchanges json 2017-06-01 17:39:52 -07:00
Cesar Blum Silveira 402b337178 Temporary workaround for GenerateResource task error on VS. 2017-05-30 12:47:36 -07:00
Nate McMaster c343628926 Implement max connection limits
- Added new options to allow configuring the maximum number of concurrent connections and upgraded connections.
- `KestrelServerLimits.MaxConcurrentConnections` defaults unlimited.
- `KestrelServerLimits.MaxConcurrentUpgradedConnections` defaults to unlimited.
- Calls to IHttpUpgradeFeature.UpgradeAsync() will throw when the MaxConcurrentUpgradedConnections limit has been reached.
- Kestrel will close new connections without response when MaxConcurrentConnections is reached.
2017-05-26 12:27:48 -07:00
Hao Kung 273b25fb3a React to forbid changes 2017-05-25 18:37:27 -07:00
Javier Calvarro Nelson 7ac72dd7d8 Add task for generating ssl certificates with MSBuild 2017-05-24 15:55:43 -07:00
John Luo d25dbd572c Target NETStandard2.0 2017-05-24 11:10:13 -07:00
Nate McMaster b706a75e03 Target .NET Standard 2.0
This retargets all data protection libraries to ns2.0. This means .NET
Framework applications will need to upgrade to .NET Framework 4.6.1.
This upgrade makes available API to .NET Core that was previously only
available on .NET Framework, such as encrypting keys at rest with
certificates.

New API for .NET Core users:
- IDataProtectionBuilder.ProtectKeysWithCertificate(string thumbprint)
- CertificateXmlEncryptor
- ICertificateResolver
- DataProtectionProvider
  - .Create(string applicationName, X509Certificate2 certificate)
  - .Create(DirectoryInfo keyDirectory, X509Certificate2 certificate)
  - .Create(DirectoryInfo keyDirectory, Action<IDataProtectionBuilder>
  setupAction, X509Certificate2 certificate

Other minor changes in this commit:
- Fixed samples that were using obsolete logging API
- Remove calls to api-sets, instead using kernel32. .NET Core 2.0 no
longer requires using api-sets as Nano Server now forwards kernel32
calls
- Made minor improvements to the TypeForwardingActivator
- Remove dead code an unused api baselines
- Enable more tests on macOS/Linux that previously only ran on Windows
2017-05-24 09:47:10 -07:00
pan-wang bce531f61a add features: flowing authentication info, hosting environment variable support; fix client disconnect and app_offline issues (#102)
resubmit
2017-05-23 17:25:45 -07:00
John Luo d6a653145d Target NETStandard 2.0 2017-05-22 15:05:12 -07:00
Cesar Blum Silveira 197eb43d8a Read request body concurrent to app execution. 2017-05-22 12:23:02 -07:00
Nate McMaster 390582dcf1 Target .NET Standard 2.0 (#1849) 2017-05-20 10:37:35 -07:00
Kiran Challa e3114dc6a4 Temporarily change tfm to netstandard1.3
Ideally we want to target netstandard2.0 but this conversion is blocked on the issue: https://github.com/dotnet/sdk/issues/1219
2017-05-19 14:00:08 -07:00
Pavel Krymets 34ab089e7b React to scheduler changes (#1846) 2017-05-18 14:49:48 -07:00
Hao Kung 8ed21d56c8 IIS => Auth 2.0 2017-05-17 13:37:30 -07:00
Nate McMaster 7f0319f5dd Throw InvalidOperationException from IHttpUpgradeFeature.UpgradeAsync when request is not upgradable 2017-05-17 11:38:42 -07:00
Pavel Krymets d22f689fd2 Add support to use System.Memory as a package instead of internilized source (#1821) 2017-05-16 16:54:03 -07:00
David Fowler cf16d601d6 Remove synchronous Write APIs (#1838) 2017-05-15 19:04:04 -07:00
Stephen Halter 9ab09dbe48 Change Exception to UvException where possible (#1833) 2017-05-15 11:03:04 -07:00
Stephen Halter 41f1922502 Simplify LibuvConnection.OnRead() (#1828)
* Simplify LibuvConnection.OnRead()

- Fix a null reference that sometimes occurs given an EOF status
2017-05-15 11:02:16 -07:00
David Fowler 1a706113d9 Remove rogue ConfigureAwait (#1830)
- We don't do it anywhere else, I assume this is left over
from older legacy
2017-05-12 18:26:52 -07:00
Cesar Blum Silveira cb1d0f3956 Prevent infinite loop in PipelineExtensions.PeekAsyncAwaited() (#1827). 2017-05-12 16:04:38 -07:00
Cesar Blum Silveira 37f15bdd85 Create Frame in FrameConnection. 2017-05-10 16:48:37 -07:00
David Fowler b9518e3684 Invert the dependency between connection adapters and Frame (#1822)
* Invert the dependency between connection adapters and Frame
- Removed PrepareRequest from IAdaptedConnection and instead added
a feature collection to the ConnectionAdapterContext. This allows features to be set
once by the adapter instead of per request. It's the Frame's job to copy features
from the connection level feature collection into the per request feature collection.
- Set the scheme to "https" based on the presence of ITlsConnectionFeature.
- Always set ITlsConnection feature if the HttpsAdaptedConnection doesn't throw during
the handshake
2017-05-10 15:29:43 -07:00
Pavel Krymets 67322fe8ab Remove unnecessary package references (#177) 2017-05-10 11:48:33 -07:00
Pavel Krymets 7a7dc71164 Remove unnecessary package references (#79) 2017-05-10 11:45:31 -07:00
David Fowler c8b6a2be56 More FrameConnection refactoring (#1820)
* More FrameConnection refactoring
- This change reverts the change to complete the writer with an
exception on abort because of the number of first chance exceptions
that get thrown.
- This change also moves connection logging into FrameConnection instead
of being split between the ConnectionHandler and FrameConnection.
- Fixed issues with LibuvOutputConsumerTests that leak WriteReq since
cancelled writes no longer end the connection.
2017-05-09 17:40:25 -07:00
David Fowler c48113ad80 Refactoring and of FrameConnection and Frame (#1816)
* Refactoring and of FrameConnection and Frame
- Building on top of the last refactoring of FrameConnection, this change aims to clean up
the communication between the Frame and FrameConnection by removing some concepts and
being consistent about the communication between Frame and FrameConnection with or without
connection adapters. Changes include:
- Removing ConnectionLifetimeControl, ISocketOutput, StreamSocketOutput
- Moving more initialization of the frame to FrameConnection after the pipes
are setup
- OutputProducer communicates cancellation via the IPipeWriter instead of the output's IPipeReader.
- Frame always communicates via the pipes and that communications flows through the layers to the transport.
This means that each 1/2 of the adapted pipeline handles closing the right side of the transport at the
right time, propagating exceptions as necessary.
- This is how the flow looks now:
            ->                        ->
[transport]     [connection adapters]     [frame]
            <-                        <-
- Transports need to handle a ConnectionAbortedException on the output as a signal to stop
writing and end the connection. This will no longer try to drain the output but will just stop
writing and end the response immediately.
- Remove frame.Abort when cancellation on Write fails.
- Unify the connection shutdown logic
- Dispose 1/2 initialized connection adapters

#1815
2017-05-08 20:44:13 -07:00
Chris R 129edaec7c Remove IHostingEnvironment dependency (#230) 2017-05-05 17:03:33 -07:00
Jass Bagga 378136f794 Change TFM to netcoreapp2.0 (#78) 2017-05-05 16:12:46 -07:00
Stephen Halter 6e2fdda162 Simplify connection lifetime control flow (#1776)
* Also make IAdaptedConnection disposable
2017-05-05 16:11:01 -07:00
Pavel Krymets 28b479c99a Merge branch 'rel/2.0.0-preview1' into dev 2017-05-05 14:35:41 -07:00
Pavel Krymets a9c165e666 netcoreapp2.0 (#1810) 2017-05-05 14:31:34 -07:00
David Fowler cd1568d7f4 Remove uv_shutdown because FIN is already sent during uv_close (#1811)
* Remove uv_shutdown because FIN is already sent during uv_close

#1808
2017-05-05 12:52:10 -07:00
Chris Ross (ASP.NET) 539a13717e Migrate to netcoreapp2.0 2017-05-05 11:37:10 -07:00
Andrew Stanton-Nurse 319f95db5e netcoreapp20 (#173) 2017-05-04 19:26:46 -07:00
Stephen Halter 557cf29e4a arespr/knownmethods-optimizations cleanup 2017-05-04 12:27:22 -07:00
Stephen Halter f464760bf8 Merge branch 'arespr/knownmethods-optimizations' into dev 2017-05-04 11:44:54 -07:00
David Fowler 9072e0ba26 Added a ConnectionAbortedException to Transport.Abstractions (#1806)
* Added a ConnectionAbortedException to Transport.Abstractions
- To avoid hard coding TaskCanceledException in each transport
- This PR tries to keep compatibility by converting the ConnectionAbortedException
to a TaskCanceledException on exceptions in FrameRequestStream. The downside is that
this conversion causes an async state machine to be created per call to ReadAsync.
CopyToAsync isn't that bad because it's a single long running task.
2017-05-03 19:38:34 -07:00
Mike Harder cfc41d3845 Merge remote-tracking branch 'origin/rel/2.0.0-preview1' into dev 2017-05-03 11:42:10 -07:00
Mike Harder db517803c8 Move System.Data.SqlClient version from csproj to dependencies.props (#293) 2017-05-03 11:30:51 -07:00
Nate McMaster 53caf55116 Remove unnecessary null check.
Resolves #210
2017-05-01 16:25:44 -07:00
David Fowler 35b5d92652 Fix EBUSY errors on uv_loop_close (#1798)
* Fix race where ListenerPrimary is disposed before secondary listeners spin up
- Since we only add listeners to dispatch pipes after receiving the "ack" message
it's possible to have pipes that were created but not acked yet. We might miss
disposal of those pipes if they were never added to the list of _dispatchPipes.

#1761
2017-05-01 14:55:32 -07:00
Nate McMaster 4dc7946cd8 Implement new request trace identifier format
The format:
The trace identifier begins with connection ID and ends with a number that increments with each request per connection.

Example:
Connection ID = xyz
Request 1 = "xyz:00000001"
Request 2 = "xyz:00000002"
...
Request 15 = "xyz:0000000F"
Request 16 = "xyz:00000010"
2017-05-01 09:50:47 -07:00
David Fowler 9a5d6c8879 More shutdown tweaks (#1760)
* More shutdown tweaks
- Added assert if loop has ended before starting the shutdown
sequence.
2017-04-29 01:15:10 -07:00
Stephen Halter 7122b6c4aa Fix flaky heartbeat test (#1794) 2017-04-29 00:42:27 -07:00
David Fowler 749e282102 Prepare for OnReader/WriterCallbacks changes (#1791)
- This change does a few things:

1. It adds the events we will replace with
pipe events to IConnectionContext and IConnectionInformation to get out of
band notifications about pipe completions.

2. It also implements those callbacks
and exposing slight changes we'll need to make once we have them. The idea is
that we can delete/replace these methods once we have the new pipe API and things
will keep working.
2017-04-29 00:41:48 -07:00
Nate McMaster 88f43ffc1a Fix race conditions between CTRL+C and RunAsync in dotnet-watch
Increase timeouts in testing dotnet-run and improve verbosity of test logging
2017-04-28 10:34:18 -07:00
David Fowler cfad8051d5 Merge branch 'rel/2.0.0-preview1' into dev 2017-04-27 21:00:46 -07:00
David Fowler 0e372edb2c Removed UseTransportThread (#1781) 2017-04-27 20:59:50 -07:00
David Fowler 5b62024fc8 * Properly handle FINs and resets in the SocketConnection (#1782)
- FIN from the client shouldn't throw
- Forced close from the server should throw
- Properly wrap connection reset exceptions and other exceptions
in IO exceptions
- This gives kestrel control over when the output closes
- Fixed one test that assumed libuv
- Dispose the connection to yield the reader

Fixes #1774
2017-04-27 17:55:35 -07:00
Stephen Halter 79ea2bb9b3 Quick fix for SslStream ODEs in HttpsAdaptedConnection.PrepareRequest (#1786) 2017-04-27 16:56:07 -07:00
Mike Harder 3a248e22c8 Upgrade System.Data.SqlClient to 4.4.0-* (#287)
- Addresses "SqlClient fails with netcoreapp2.0 on Win7/Server2008" (https://github.com/dotnet/corefx/issues/18406)
- Revert if and when $(CoreFxVersion) is upgraded to 4.4.0-*
2017-04-27 13:37:20 -07:00
David Fowler 0755495ce5 Remove Logging dependency from the http parser (#1780)
* Remove Logging dependency from the http parser
2017-04-27 08:46:08 -07:00
Nate McMaster c2f15fcac3 Move user-facing strings into resource files 2017-04-26 17:22:55 -07:00
Nate McMaster 9464003bda Add wait in ListenerPrimaryTests to avoid race condition with List.Add 2017-04-26 11:03:28 -07:00
Nate McMaster 4dad47eeab Ignore assembly version when activating DataProtection types from string name (#223) 2017-04-25 14:29:26 -07:00
Smit Patel edd7386aa8 Update API Check related files
React to aspnet/BuildTools#238
2017-04-25 08:19:12 -07:00
David Fowler 566a587126 Added ApplicationSchedulingMode to KestrelServerOptions (#1759)
* Added ApplicationSchedulingMode to KestrelServerOptions
- Made default mode Default instead of ThreadPool
2017-04-25 00:37:09 -07:00
jhkimnew 2c5132251b Updated to support IISExpress and add new test cases for the additional environment variables (#93) 2017-04-24 18:17:33 -07:00
David Fowler 9e80fb65bd Removed the wrote after disconnect log (#1747)
- It's not very useful
2017-04-24 17:34:56 -07:00
Stephen Halter f26c31c116 Fix scope id test failures on mac and linux (#1754) 2017-04-24 17:15:41 -07:00
Nate McMaster 39047638cc Add debug logging in address binding when IPv6Any fails 2017-04-24 17:14:43 -07:00
Stephen Halter c22f8f5c59 Fix potential race in LibuvThread.StopAsync (#1756) 2017-04-24 16:47:48 -07:00
David Fowler a98581670e Schedule connection adapter reads on configured thread pool (#1741)
* Schedule connection adapter reads on configured thread pool
- This should speed up connection adapters as we don't block
new reads. It *might* also help some of the test flakiness
2017-04-24 12:19:22 -07:00
David Fowler 7e5604b2f5 Remove async from OnRead (#1746)
- Remove async from fast path.
- Added ApplyBackpressureAsync that pauses and resumes reading
2017-04-24 11:58:52 -07:00
Pavel Krymets df9e48b1f0 Add cancellation support for write async (#1736) 2017-04-24 11:58:08 -07:00
Ajay Bhargav Baaskaran c959795a64 Creating one IAuthenticatedEncryptor per IKey 2017-04-24 10:46:33 -07:00
Nate McMaster 1e61428f8e Lift packages to target .NET Core 2.0 2017-04-24 10:39:27 -07:00
David Fowler 71d2abed06 More clean up of LibuvConnection (#1743)
* More clean up of LibuvConnection
- Use C# 7
- Use Buffer<T>.Pin to get access to the underlying
pointer instead of using TryGetPointer.
2017-04-23 20:45:03 -07:00
David Fowler db44f5b672 Clean up LibuvOutputConsumer (#1744)
* Clean up LibuvOutputConsumer
- Added UvShutdownReq.ShutdownAsync
- Added Debug.Assert in LibuvAwaitable since it should never race.
2017-04-23 20:22:49 -07:00
David Fowler 650a3ccc26 Pass exception to Complete (#1739) 2017-04-21 23:31:59 -07:00
Chris R b7ed993d9d Remove obsolete Azure ForwardedHeaders workaround. (#359) 2017-04-21 19:02:11 -07:00
David Fowler a749939be4 Clean up libuv connection (#1726)
* Clean up libuv connection
- Cancel all pending flushes on the input writer before
disposing the stream handle.
- Complete the pipe before disposing the socket
- Added logging for connection pause/resume.
- Added test
2017-04-21 13:13:05 -07:00
David Fowler feb9d1281e Tweak libuv shutdown sequence (#1735)
* Tweak libuv shutdown sequence
- Increase timeouts for thread and listener shutdowns
- Remove post.Unreference call from AllowStopRude
2017-04-21 13:12:37 -07:00
Nate McMaster ee9feedc27 Improve implementation of IHttpUpgradeFeature
After upgrade has been accepted by the server:
 - Reads to HttpRequest.Body always return 0
 - Writes to HttpResponse.Body always throw
 - The only valid way to communicate is to use the stream returned by IHttpUpgradeFeature.UpgradeAsync()

Also, Kestrel returns HTTP 400 if requests attempt to send a request body along with Connection: Upgrade
2017-04-20 12:42:58 -07:00
David Fowler d1494224f4 Make the tests that use the Heartbeat more deterministic. (#1724)
- Added Start to Heartbeat and made OnHeartbeat internal
- Explicitly call start in tests
2017-04-20 01:41:37 -07:00
Stephen Halter a053ca4758 Move shutdown logic from transport to core (#1707)
* Move shutdown logic from transport to core
* Use weak references to track FrameConnections
2017-04-19 18:08:36 -07:00
Nate McMaster 7a3a731686 Refactor address binding and handle EAFNOSUPPORT
- Simplify KestrelServer by refactoring address binding into a separate class
 - Use strategy pattern to implement address binding for different sceanrios
 - Add fallback from binding 0.0.0.0 if binding to [::] fails (can happen if UvException with EAFNOSUPPORT is thrown)
2017-04-19 15:58:12 -07:00
David Fowler 42d82a507d Make all UvRequest objects normal GC handles (#1698)
* Make all UvRequest objects normal GC handles
- This avoids the cost of using GCHandle.Alloc per operation.
- It *does* mean that we need to explicitly dispose UvRequest objects
after using them (which we did before anyways). This change does
add a few try catch statements to make sure we always dispose the UvRequest
if there are synchronous exceptions.
- This is ~1.5% of the overhead in the benchmarks today
- Keep track of all allocated UvRequest objects with a WeakReference in DEBUG
and assert none are kept around after cleaning up.
- Fixed a leak where we don't clean up UvWriteReq objects when writing
to the named pipe.
2017-04-19 15:16:11 -07:00
Pavel Krymets 88890595d1 Define a constant to workaround corefxlab classes asses modifier issue 2017-04-18 09:01:35 -07:00
Cesar Blum Silveira 801a7c7652 Add copyright header to TransportSocketOptions.cs. 2017-04-17 20:47:29 -07:00
David Fowler e4af3f7e35 Expose a UseTransportThread property on KestrelServerOptions (#1695)
- This property will force Kestrel to use whatever scheduler the transport
used when write and read callbacks are fired. The default value is false so
all calls to user code including connection adapters, and the application function,
and cancellation token callbacks.
- Transports may expose configuration that changes what the transport thread is.
- Removed InternalKestrelServerOptions.cs
- Added a configurable UseSockets overload (even though there are no options yet)
- Remove RequiresDispatch from the IConnectionInformation
2017-04-17 12:58:28 -07:00
David Fowler 85d883456b Remove Reset from IHttpParser (#1700)
* Remove Reset from IHttpParser
- The parser isn't stateful and doesn't need it
2017-04-17 00:37:40 -07:00
David Fowler 31cc1e5018 Fix extra space 2017-04-16 09:25:28 -07:00
David Fowler 6a403d231e Clean up IThreadPool interface (#1696)
- Remove tcs completion methods
2017-04-15 19:04:44 -07:00
Stephen Halter 8cd58b042c Fix tests using Heartbeat 2017-04-14 16:26:27 -07:00
Stephen Halter 7aa7b3e0a9 Track connections until request processing completes
- Paves the way to allow request processing to continue during server shutdown
  even after a client disconnects.
2017-04-14 16:26:27 -07:00
Nate McMaster c08c57f764 Reject HTTP/1.1 requests that do not have a correct Host header
Improves Kestrel to reject requests that don't conform to HTTP spec.

RFC 7230 section 5.4: "A server MUST respond with a 400 (Bad Request)
status code to any HTTP/1.1 request message that lacks a Host header
 field and to any request message that contains more than one Host
 header field or a Host header field with an invalid field-value."

See https://tools.ietf.org/html/rfc7230#section-5.4.

Other changes:

 - update VS code settings to work better with CLI 2.0
 - update tests that were subject to infinite hangs
2017-04-14 15:48:21 -07:00