Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
ae73e48
Scaffold System.ServiceModel.Web package
Copilot Jun 13, 2026
66b26dc
Port UriTemplate cluster from .NET Framework reference source
Copilot Jun 13, 2026
01301cd
Suppress SYSLIB0051 on UriTemplateMatchException serialization ctor
Copilot Jun 13, 2026
87a6a47
Demote MSB3243 to message in System.ServiceModel.Web.Tests csproj
Copilot Jun 13, 2026
16e9b64
Port Phase 3: encoding plumbing from CoreWCF.WebHttp v1.8.0
Copilot Jun 13, 2026
8237982
Port Phase 4: attributes, faults, web operation context
Copilot Jun 13, 2026
58b6f86
Port Phase 5: WebHttpBinding, WebHttpBehavior, client-side dispatchers
Copilot Jun 13, 2026
2df9f9b
Port WebChannelFactory<T> + add Phase 6 test infrastructure
Copilot Jun 13, 2026
4cd4996
Bump WebHttpBinding from not-supported to partially-supported
Copilot Jun 13, 2026
d521963
Add Binding.WebHttp.IntegrationTests to System.ServiceModel.sln
Copilot Jun 13, 2026
8cd0646
Fix WebHttpBehavior.ApplyClientBehavior: wire up real client formatters
Copilot Jun 14, 2026
12068f7
Fix WebMessageEncodingBindingElement to register itself in BindingPar…
afifi-ins Jun 14, 2026
39ffadc
Avoid trailing slash on registered URI when endpoint Address is empty
afifi-ins Jun 22, 2026
0622b41
Don't materialize unported raw encoder in IsContentTypeSupported
afifi-ins Jun 22, 2026
42209c4
Honour WebMessageFormat.Json for reply formatter selection
afifi-ins Jun 22, 2026
98ec5dd
Gate WebHttp outerloop tests to the CoreWCF self-host leg
afifi-ins Jun 22, 2026
0604580
Use C# 5-compatible member syntax in WebHttp IIS test host
mconnew Jul 22, 2026
f34d2bc
Expose AllowCookies, ProxyAddress, UseDefaultWebProxy, BypassProxyOnL…
afifi-ins Jul 24, 2026
2e64a7d
Map ProxyAuthenticationScheme from Security.Transport.ProxyCredential…
afifi-ins Jul 24, 2026
db4e189
Guard WebHttpBinding.BuildChannelFactory against InheritedFromHost on…
afifi-ins Jul 24, 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
2 changes: 1 addition & 1 deletion release-notes/SupportedFeatures-v2.1.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Supported features
| |CustomBinding |:white_check_mark: |:white_check_mark: | :white_check_mark: |
| |NetHttpBinding |:white_check_mark: |:white_check_mark: | :white_check_mark: |
| |NetTcpBinding |:white_check_mark: |:white_check_mark: | :white_check_mark: |
| |WebHttpBinding |:no_entry_sign: |:no_entry_sign: | :no_entry_sign: |

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

| |WebHttpBinding |:no_entry_sign:

We shouldn't be modifying this file as it's the features released with a really old version.

| |WebHttpBinding |:warning: |:warning: | :warning: |
|Transports |Http |:white_check_mark: |:white_check_mark: | :white_check_mark: |
| |Https |:white_check_mark: |:white_check_mark: | :white_check_mark: |
| |Tcp |:white_check_mark: |:white_check_mark: | :white_check_mark: |
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