Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
7887dc2
Scaffold System.ServiceModel.Web package
Copilot Jun 13, 2026
cdcd433
Port UriTemplate cluster from .NET Framework reference source
Copilot Jun 13, 2026
fbcaea0
Suppress SYSLIB0051 on UriTemplateMatchException serialization ctor
Copilot Jun 13, 2026
bef076c
Demote MSB3243 to message in System.ServiceModel.Web.Tests csproj
Copilot Jun 13, 2026
887ed3b
Port Phase 3: encoding plumbing from CoreWCF.WebHttp v1.8.0
Copilot Jun 13, 2026
96d5b24
Port Phase 4: attributes, faults, web operation context
Copilot Jun 13, 2026
93a3828
Port Phase 5: WebHttpBinding, WebHttpBehavior, client-side dispatchers
Copilot Jun 13, 2026
fb89b27
Port WebChannelFactory<T> + add Phase 6 test infrastructure
Copilot Jun 13, 2026
af78c6f
Bump WebHttpBinding from not-supported to partially-supported
Copilot Jun 13, 2026
1949181
Add Binding.WebHttp.IntegrationTests to System.ServiceModel.sln
Copilot Jun 13, 2026
0052bb5
Fix WebHttpBehavior.ApplyClientBehavior: wire up real client formatters
Copilot Jun 14, 2026
2a5d8d1
Fix WebMessageEncodingBindingElement to register itself in BindingPar…
afifi-ins Jun 14, 2026
277270c
Avoid trailing slash on registered URI when endpoint Address is empty
afifi-ins Jun 22, 2026
6d602e8
Don't materialize unported raw encoder in IsContentTypeSupported
afifi-ins Jun 22, 2026
4e4110b
Honour WebMessageFormat.Json for reply formatter selection
afifi-ins Jun 22, 2026
8ee8703
Gate WebHttp outerloop tests to the CoreWCF self-host leg
afifi-ins Jun 22, 2026
672587b
Use C# 5-compatible member syntax in WebHttp IIS test host
mconnew Jul 22, 2026
b6bd420
Expose AllowCookies, ProxyAddress, UseDefaultWebProxy, BypassProxyOnL…
afifi-ins Jul 24, 2026
9b944dd
Map ProxyAuthenticationScheme from Security.Transport.ProxyCredential…
afifi-ins Jul 24, 2026
6f4bc61
Guard WebHttpBinding.BuildChannelFactory against InheritedFromHost on…
afifi-ins Jul 24, 2026
f0773f7
Fix 'Client' -> 'Certificate' typo in HttpClientCredentialTypeInvalid…
afifi-ins Jul 28, 2026
07e508a
Harden HttpListener regression tests: random port + retry + fail-loud
afifi-ins Jul 28, 2026
829c3f4
Revert WebHttpBinding entry in SupportedFeatures-v2.1.0.md
afifi-ins Jul 30, 2026
1b0f04e
Reshape WebOperationContext to client-only; remove server-side contex…
afifi-ins Jul 30, 2026
78ade8d
Drop IDispatchMessageFormatter from client formatters (client is requ…
afifi-ins Jul 30, 2026
45880e9
QueryStringConverter: use a shared static FrozenSet<Type> for default…
afifi-ins Jul 30, 2026
376dcb7
Remove Http->Web InternalsVisibleTo
afifi-ins Jul 30, 2026
b475af4
Remove dead code from the WebHttp port
afifi-ins Jul 30, 2026
a72071d
Remove IServiceProvider from WebHttpBehavior; fix wrapped-response JS…
afifi-ins Jul 30, 2026
d6690cb
Remove HttpDateParse (now unused)
afifi-ins Jul 30, 2026
17730f7
Carry ReaderQuotas and pool sizes onto the WebHttp text encoder
afifi-ins Jul 30, 2026
a14f55e
Add ByteStreamMessageEncodingBindingElement to Primitives
afifi-ins Jul 30, 2026
7fb3b59
Wire WebHttp raw / octet-stream path to the ByteStream encoder
afifi-ins Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions System.ServiceModel.sln
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Binding.Custom.IntegrationT
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Binding.Http.IntegrationTests", "src\System.Private.ServiceModel\tests\Scenarios\Binding\Http\Binding.Http.IntegrationTests.csproj", "{2789D52D-9C17-4FCE-B81C-41B65C3FAFF9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Binding.WebHttp.IntegrationTests", "src\System.Private.ServiceModel\tests\Scenarios\Binding\WebHttp\Binding.WebHttp.IntegrationTests.csproj", "{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Binding.Tcp.IntegrationTests", "src\System.Private.ServiceModel\tests\Scenarios\Binding\Tcp\Binding.Tcp.IntegrationTests.csproj", "{B38A2272-F260-4303-964C-ACDC9BADEB79}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Client.ChannelLayer.IntegrationTests", "src\System.Private.ServiceModel\tests\Scenarios\Client\ChannelLayer\Client.ChannelLayer.IntegrationTests.csproj", "{CB612ECB-A863-46D2-90E2-61CC2C22C7D0}"
Expand Down Expand Up @@ -89,6 +91,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Binding.UDS.IntegrationTest
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ServiceModel.NetNamedPipe.Tests", "src\System.ServiceModel.NetNamedPipe\tests\System.ServiceModel.NetNamedPipe.Tests.csproj", "{FD188537-21AF-48C5-84FF-F8758F4C42A8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ServiceModel.Web", "src\System.ServiceModel.Web\src\System.ServiceModel.Web.csproj", "{B9669945-F041-4088-9949-20DC0AE9753D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ServiceModel.Web.Tests", "src\System.ServiceModel.Web\tests\System.ServiceModel.Web.Tests.csproj", "{76E6B222-8CC8-44F4-A1C6-862706CCE788}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ServiceModel.Http.Ref", "src\System.ServiceModel.Http\ref\System.ServiceModel.Http.Ref.csproj", "{34CCEAC9-43B1-4654-BF2F-0B40EC7AD016}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ServiceModel.NetTcp.Ref", "src\System.ServiceModel.NetTcp\ref\System.ServiceModel.NetTcp.Ref.csproj", "{81843CB2-E128-427B-9920-EEDBBBD4CB0B}"
Expand Down Expand Up @@ -243,6 +249,18 @@ Global
{2789D52D-9C17-4FCE-B81C-41B65C3FAFF9}.Release|x64.Build.0 = Release|Any CPU
{2789D52D-9C17-4FCE-B81C-41B65C3FAFF9}.Release|x86.ActiveCfg = Release|Any CPU
{2789D52D-9C17-4FCE-B81C-41B65C3FAFF9}.Release|x86.Build.0 = Release|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Debug|x64.ActiveCfg = Debug|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Debug|x64.Build.0 = Debug|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Debug|x86.ActiveCfg = Debug|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Debug|x86.Build.0 = Debug|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Release|Any CPU.Build.0 = Release|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Release|x64.ActiveCfg = Release|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Release|x64.Build.0 = Release|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Release|x86.ActiveCfg = Release|Any CPU
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249}.Release|x86.Build.0 = Release|Any CPU
{B38A2272-F260-4303-964C-ACDC9BADEB79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B38A2272-F260-4303-964C-ACDC9BADEB79}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B38A2272-F260-4303-964C-ACDC9BADEB79}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -615,6 +633,30 @@ Global
{FD188537-21AF-48C5-84FF-F8758F4C42A8}.Release|x64.Build.0 = Release|Any CPU
{FD188537-21AF-48C5-84FF-F8758F4C42A8}.Release|x86.ActiveCfg = Release|Any CPU
{FD188537-21AF-48C5-84FF-F8758F4C42A8}.Release|x86.Build.0 = Release|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Debug|x64.ActiveCfg = Debug|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Debug|x64.Build.0 = Debug|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Debug|x86.ActiveCfg = Debug|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Debug|x86.Build.0 = Debug|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Release|Any CPU.Build.0 = Release|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Release|x64.ActiveCfg = Release|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Release|x64.Build.0 = Release|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Release|x86.ActiveCfg = Release|Any CPU
{B9669945-F041-4088-9949-20DC0AE9753D}.Release|x86.Build.0 = Release|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Debug|Any CPU.Build.0 = Debug|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Debug|x64.ActiveCfg = Debug|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Debug|x64.Build.0 = Debug|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Debug|x86.ActiveCfg = Debug|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Debug|x86.Build.0 = Debug|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Release|Any CPU.ActiveCfg = Release|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Release|Any CPU.Build.0 = Release|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Release|x64.ActiveCfg = Release|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Release|x64.Build.0 = Release|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Release|x86.ActiveCfg = Release|Any CPU
{76E6B222-8CC8-44F4-A1C6-862706CCE788}.Release|x86.Build.0 = Release|Any CPU
{34CCEAC9-43B1-4654-BF2F-0B40EC7AD016}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{34CCEAC9-43B1-4654-BF2F-0B40EC7AD016}.Debug|Any CPU.Build.0 = Debug|Any CPU
{34CCEAC9-43B1-4654-BF2F-0B40EC7AD016}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -734,6 +776,7 @@ Global
{58918456-A2B2-431F-BB95-BAAD2818BFC7} = {DFDC71CF-6E65-481D-99D7-C35ED7EF6D4E}
{D878F354-E120-476A-A90A-9E601A7E7580} = {D6302510-AB10-4775-BCE9-98FA96FDEB76}
{2789D52D-9C17-4FCE-B81C-41B65C3FAFF9} = {D6302510-AB10-4775-BCE9-98FA96FDEB76}
{F0F5C0C0-AB1D-4A86-A0A9-3D13ACB9B249} = {D6302510-AB10-4775-BCE9-98FA96FDEB76}
{B38A2272-F260-4303-964C-ACDC9BADEB79} = {D6302510-AB10-4775-BCE9-98FA96FDEB76}
{CB612ECB-A863-46D2-90E2-61CC2C22C7D0} = {D6302510-AB10-4775-BCE9-98FA96FDEB76}
{76A75B01-C666-4953-924E-DCAC9C7AADF3} = {D6302510-AB10-4775-BCE9-98FA96FDEB76}
Expand All @@ -760,6 +803,8 @@ Global
{88918456-A2B2-431F-BB95-BAAD2818BFC7} = {DFDC71CF-6E65-481D-99D7-C35ED7EF6D4E}
{B7C7D4F1-DE4D-421B-9CE9-C7320A503D58} = {D6302510-AB10-4775-BCE9-98FA96FDEB76}
{FD188537-21AF-48C5-84FF-F8758F4C42A8} = {DFDC71CF-6E65-481D-99D7-C35ED7EF6D4E}
{B9669945-F041-4088-9949-20DC0AE9753D} = {D6302510-AB10-4775-BCE9-98FA96FDEB76}
{76E6B222-8CC8-44F4-A1C6-862706CCE788} = {DFDC71CF-6E65-481D-99D7-C35ED7EF6D4E}
{0CB62138-1E7D-4D9D-B7BF-4FCB79BC8EAA} = {D6302510-AB10-4775-BCE9-98FA96FDEB76}
{7D7DACFC-D1DA-48C0-9BA1-C3A414780658} = {D6302510-AB10-4775-BCE9-98FA96FDEB76}
EndGlobalSection
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -390,5 +390,15 @@ public static bool Skip_CoreWCFService_FailedTest()
return !GetConditionValue(nameof(Skip_CoreWCFService_FailedTest),
ConditionalTestDetectors.IsRunWithCoreWCFService);
}

// Returns 'true' only when the test infrastructure is hosting services via
// CoreWCF (self-hosted). Used to gate outer-loop scenario tests whose
// service endpoint is only registered by the CoreWCF self-host project
// and is not yet deployed to the shared IIS bridge.
public static bool Run_With_CoreWCFService()
{
return GetConditionValue(nameof(Run_With_CoreWCFService),
ConditionalTestDetectors.IsRunWithCoreWCFService);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

// Endpoints addresses for WebHttp (REST) test services. Partial extension to
// Endpoints (declared partial in tests/Common/Scenarios/Endpoints.cs).
public static partial class Endpoints
{
#region WebHttp Addresses
public static string HttpBaseAddress_WebHttp
=> GetEndpointAddress("WebHttp.svc/");

public static string HttpBaseAddress_WebHttp_EchoGet
=> GetEndpointAddress("WebHttp.svc/EchoWithGet");

public static string HttpBaseAddress_WebHttp_EchoGetJson
=> GetEndpointAddress("WebHttp.svc/EchoWithGetJson");

public static string HttpBaseAddress_WebHttp_EchoPost
=> GetEndpointAddress("WebHttp.svc/EchoWithPost");

public static string HttpBaseAddress_WebHttp_EchoPostJson
=> GetEndpointAddress("WebHttp.svc/EchoWithPostJson");

public static string HttpBaseAddress_WebHttp_EchoGetPath
=> GetEndpointAddress("WebHttp.svc/EchoWithGetPath");
#endregion
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), certtest.props))\certtest.props" />
<PropertyGroup>
<TargetFrameworks>$(ScenarioTestTargetFrameworks)</TargetFrameworks>
<CLSCompliant>false</CLSCompliant>
<IsTestProject>true</IsTestProject>
<IsPackable>false</IsPackable>
<LangVersion>9.0</LangVersion>
<!-- Same warning suppressions as the impl project: type-name collisions
(SR, BufferedMessage, etc.) between our new System.ServiceModel.Web
and Primitives/Http internals exposed via InternalsVisibleTo. -->
<NoWarn>$(NoWarn);CS0105;CS0108;CS0436;MSB3243</NoWarn>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\System.ServiceModel.Primitives\src\System.ServiceModel.Primitives.csproj" />
<ProjectReference Include="..\..\..\..\..\System.ServiceModel.Http\src\System.ServiceModel.Http.csproj" />
<ProjectReference Include="..\..\..\..\..\System.ServiceModel.Web\src\System.ServiceModel.Web.csproj" />
<ProjectReference Include='$(WcfScenarioTestCommonProj)' />
<ProjectReference Include="$(WcfInfrastructureCommonProj)" />
</ItemGroup>

<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
Loading
Loading