### Setup IIS-Hosted WCF Test Service Source: https://github.com/dotnet/wcf/blob/main/Documentation/scenario-test-guide.md Run this script on a Windows machine with IIS to set up an IIS-hosted WCF test service. It clones the repository, creates an IIS application, and installs certificates. An ID is required for the application name. ```batch SetupWcfIISHostedService.cmd {id} ``` -------------------------------- ### Kerberos Configuration Example Source: https://github.com/dotnet/wcf/blob/main/Documentation/manualtest-guide.md This is an example snippet of the `/etc/krb5.conf` file. Manually edit this file if your authentication server changes. ```ini [realms] REALM.DOMAIN.COM = { kdc = DC1.REALM.DOMAIN.COM admin_server = DC1.REALM.DOMAIN.COM } ``` -------------------------------- ### Install dotnet-svcutil Source: https://github.com/dotnet/wcf/blob/main/src/dotnet-svcutil/README.md Use this command to install the global dotnet-svcutil tool, specifying the package source and version. ```bash dotnet tool install --global --add-source [RepoRootDir]/artifacts/packages/[Release/Debug]/[Shipping/NonShipping] dotnet-svcutil --version [tool-version] ``` -------------------------------- ### Start Self-Hosted WCF Test Service Source: https://github.com/dotnet/wcf/blob/main/Documentation/scenario-test-guide.md Execute this script to start a self-hosted WCF test service. It handles firewall rules, certificates, and starts the service in a new window. Requires elevated privileges. ```batch StartWCFSelfHostedSvc.cmd ``` -------------------------------- ### Install dotnet-svcutil Globally Source: https://github.com/dotnet/wcf/blob/main/src/dotnet-svcutil/src/README-nuget.md Installs the dotnet-svcutil tool globally on your machine. This command requires the .NET SDK to be installed. ```bash dotnet tool install --global dotnet-svcutil ``` -------------------------------- ### Install Kerberos Packages on Ubuntu/Debian Source: https://github.com/dotnet/wcf/blob/main/Documentation/manualtest-guide.md Install the necessary Kerberos packages on Ubuntu/Debian systems. This is a one-time setup step for developers. ```bash sudo apt-get install krb5-config krb5-user ``` -------------------------------- ### Create and Start ETW Logging (Informational, Rolling) Source: https://github.com/dotnet/wcf/blob/main/Documentation/HowToUseETW.md Creates an ETW trace with informational level and sets it to roll over to a new file every 10 minutes. Then starts the trace. ```bash logman create trace WCFETWTracing -p "Microsoft-Windows-Application Server-Applications" 0xFFFFFFFF 0x4 -o C:\temp\WCFETWTrace -f bin -cnf 00:10:00 -v mmddhhmm logman start WCFETWTracing ``` -------------------------------- ### Start Self-Hosted Service as Local System Source: https://github.com/dotnet/wcf/blob/main/Documentation/manualtest-guide.md Use psexec to start the self-hosted WCF service as a LOCAL SYSTEM user. This is required for NegotiateStream tests. ```powershell psexec -s -h ``` -------------------------------- ### Display IIS-Hosted WCF Test Service Options Source: https://github.com/dotnet/wcf/blob/main/Documentation/scenario-test-guide.md Run this command to view the available options and sample usage for the IIS-hosted WCF test service setup script. ```batch SetupWcfIISHostedService.cmd /? ``` -------------------------------- ### Running WCF Performance Tests Source: https://github.com/dotnet/wcf/blob/main/src/System.Private.ServiceModel/tests/Stress/readme.md Command-line example for executing WCF performance tests. Parameters include test program, maximum tasks, binding, and async setting. ```cmd SharedPoolsOfWCFObjects.exe Program2Run:Perf PerfMaxThroughputTasks:90 Binding:NetTcp Async:true Test:HelloWorld HostName:yourserverhostname ``` -------------------------------- ### Example of Multiple Outputs in 1ES Pipeline Templates Source: https://github.com/dotnet/wcf/blob/main/eng/common/template-guidance.md This example demonstrates how to configure multiple outputs for 1ES pipeline templates to reduce security scan overhead. Ensure publish artifacts are located in `$(Build.ArtifactStagingDirectory)` and utilize the 1ES provided template context. This is only applicable to 1ES PT publishing. ```yaml extends: template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate parameters: stages: - stage: build jobs: - template: /eng/common/templates-official/jobs/jobs.yml@self parameters: # 1ES makes use of outputs to reduce security task injection overhead templateContext: outputs: - output: pipelineArtifact displayName: 'Publish logs from source' continueOnError: true condition: always() targetPath: $(Build.ArtifactStagingDirectory)/artifacts/log artifactName: Logs jobs: - job: Windows steps: - script: echo "friendly neighborhood" > artifacts/marvel/spiderman.txt # copy build outputs to artifact staging directory for publishing - task: CopyFiles@2 displayName: Gather build output inputs: SourceFolder: '$(System.DefaultWorkingDirectory)/artifacts/marvel' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/marvel' ``` -------------------------------- ### Install Mono CI Build and Reference Assemblies (Fedora/CentOS) Source: https://github.com/dotnet/wcf/blob/main/Documentation/building/unix-instructions.md Install the latest Continuous Integration Mono build and PCL reference assemblies on Fedora/CentOS systems. ```bash sudo yum install mono-snapshot-latest referenceassemblies-pcl ``` -------------------------------- ### Setup IIS-Hosted WCF Test Service with Custom Path Source: https://github.com/dotnet/wcf/blob/main/Documentation/scenario-test-guide.md Use this command to set up an IIS-hosted WCF test service using an existing WCF repository path. Specify the repository path using the /p:Path-to-WCF-repo argument. ```batch SetupWcfIISHostedService.cmd {id} /p:Path-to-WCF-repo ``` -------------------------------- ### Switch to Mono Snapshot Build Source: https://github.com/dotnet/wcf/blob/main/Documentation/building/unix-instructions.md Activate the installed Mono snapshot build for use in the current shell session. ```bash . mono-snapshot mono ``` -------------------------------- ### Install Mono CI Build and Reference Assemblies (Debian/Ubuntu) Source: https://github.com/dotnet/wcf/blob/main/Documentation/building/unix-instructions.md Install the latest Continuous Integration Mono build and PCL reference assemblies on Debian/Ubuntu systems. ```bash sudo apt-get install mono-snapshot-latest referenceassemblies-pcl ``` -------------------------------- ### Start ETW Logging (Verbose, Circular) Source: https://github.com/dotnet/wcf/blob/main/Documentation/HowToUseETW.md Starts ETW logging for WCF applications with verbose level and circular buffering. Logs are saved to a specified file. ```bash logman start WCFETWTracing -p "Microsoft-Windows-Application Server-Applications" 0xFFFFFFFF 0x5 -bs 64 -nb 120 320 -ets -ct perf -f bincirc -max 500 -o c:\temp\WCFEtwTrace.etl ``` -------------------------------- ### Add Mono Key and Package Sources (Fedora/CentOS) Source: https://github.com/dotnet/wcf/blob/main/Documentation/building/unix-instructions.md Import the Mono GPG key and configure yum/dnf repositories for Fedora/CentOS-based systems to install Mono. ```bash sudo rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF" sudo yum-config-manager --add-repo http://download.mono-project.com/repo/centos/ sudo yum-config-manager --add-repo http://jenkins.mono-project.com/repo/centos/ sudo yum upgrade ``` -------------------------------- ### Start ETW Logging (Informational, Circular) Source: https://github.com/dotnet/wcf/blob/main/Documentation/HowToUseETW.md Starts ETW logging for WCF applications with informational level and circular buffering. Logs are saved to a specified file. ```bash logman start WCFETWTracing -p "Microsoft-Windows-Application Server-Applications" 0xFFFFFFFF 0x4 -bs 64 -nb 120 320 -ets -ct perf -f bincirc -max 500 -o c:\temp\WCFEtwTrace.etl ``` -------------------------------- ### Add Mono Key and Package Sources (Debian/Ubuntu) Source: https://github.com/dotnet/wcf/blob/main/Documentation/building/unix-instructions.md Add the Mono GPG key and configure APT package sources for Debian/Ubuntu-based systems to install Mono. ```bash sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list echo "deb http://jenkins.mono-project.com/repo/debian sid main" | sudo tee /etc/apt/sources.list.d/mono-jenkins.list sudo apt-get update ``` -------------------------------- ### Start ETW Logging (Warning, Circular) Source: https://github.com/dotnet/wcf/blob/main/Documentation/HowToUseETW.md Starts ETW logging for WCF applications with warning level and circular buffering. Logs are saved to a specified file. ```bash logman start WCFETWTracing -p "Microsoft-Windows-Application Server-Applications" 0xFFFFFFFF 0x3 -bs 64 -nb 120 320 -ets -ct perf -f bincirc -max 500 -o c:\temp\WCFEtwTrace.etl ``` -------------------------------- ### Running WCF Stress Tests Source: https://github.com/dotnet/wcf/blob/main/src/System.Private.ServiceModel/tests/Stress/readme.md Command-line example for executing WCF stress tests using SharedPoolsOfWCFObjects.exe. Specify binding, test name, host, and duration. ```cmd SharedPoolsOfWCFObjects.exe Binding:NetTcp Async:true Test:HelloWorld HostName:yourserverhostname StressRunDuration:1 ``` -------------------------------- ### Run Scenario Tests with Self-Hosted Service Source: https://github.com/dotnet/wcf/blob/main/Documentation/building/cross-platform-testing.md Example of running scenario tests when the WCF test service is self-hosted on a Windows machine named 'MyWindowsMachine'. ```bash ./build.sh -outerloop -- /p:ServiceUri=MyWindowsMachine ``` -------------------------------- ### Run Scenario Tests as UWP with Self-Hosted Services Source: https://github.com/dotnet/wcf/blob/main/Documentation/developer-guide.md This sequence starts local self-hosted services, runs security-based scenario tests as UWP, and then stops the services. Use msbuild.sh on non-Windows environments. Results are in bin\tests\Windows_NT.AnyCPU.Debug\Security.TransportSecurity.Tests\netcore50\testresults.xml. ```bash src\System.Private.ServiceModel\tools\scripts\StartWCFSelfHostedSvc.cmd pushd src\System.Private.ServiceModel\tests\Scenarios\Security\TransportSecurity msbuild /t:BuildAndTest /p:TargetGroup=netstandard1.3 /p:TestTFM=netcore50aot /p:OuterLoop=true /p:TestNugetRuntimeId=win10-x64-aot /p:UseDotNetNativeToolchain=true Security.TransportSecurity.Tests.csproj popd src\System.Private.ServiceModel\tools\scripts\StopWCFSelfHostedSvc.cmd ``` -------------------------------- ### Run Scenario Tests with IIS-Hosted Service Source: https://github.com/dotnet/wcf/blob/main/Documentation/building/cross-platform-testing.md Example of running scenario tests when the WCF test service is hosted in IIS on a Windows machine named 'MyWindowsMachine'. ```bash ./build.sh -outerloop -- /p:ServiceUri=MyWindowsMachine/WcfService1 ``` -------------------------------- ### WCF Server Binding Configuration Source: https://github.com/dotnet/wcf/blob/main/src/System.Private.ServiceModel/tests/Stress/readme.md Example configuration snippet for adding a net.tcp binding to a WCF service in applicationHost.config. ```xml ``` -------------------------------- ### Generate Client Code with Specific Settings Source: https://github.com/dotnet/wcf/blob/main/src/dotnet-svcutil/README.md Generates client code from a running service using settings that emulate the default "WCF Connected Service" behavior in Visual Studio. This example specifies data binding, a namespace mapping, a custom collection type, and a project reference. ```bash dotnet-svcutil http://example.com/service.svc?wsdl -edb -n "*,MyApplication.ServiceReference1" -ct MyLibrary.MyCollection`1 -r "{{MyLibrary,1.0.0}}" ``` -------------------------------- ### Run Scenario Tests (Windows) Source: https://github.com/dotnet/wcf/blob/main/Documentation/developer-guide.md Executes end-to-end scenario tests, including starting and stopping self-hosted WCF test services. Execute from the repository root. ```batch build-tests.cmd -outerloop ``` -------------------------------- ### Configure NetTcpBinding Security Source: https://github.com/dotnet/wcf/blob/main/src/System.ServiceModel.NetTcp/src/PACKAGE.md Demonstrates how to configure a NetTcpBinding for transport-level security using client certificates. Ensure the necessary certificates are installed and configured on both client and server. ```csharp using System; using System.ServiceModel; using System.ServiceModel.NetTcp; NetTcpBinding binding = new NetTcpBinding(); binding.Security.Mode = SecurityMode.Transport; binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Certificate; ``` -------------------------------- ### Run HTTPS Tests on Linux Source: https://github.com/dotnet/wcf/blob/main/Documentation/manualtest-guide.md Execute HTTPS tests by specifying the 'OuterLoop' category and the service URI. Ensure the WCF Test Root CA certificate is installed. ```bash ./build.sh -p:WithCategories=OuterLoop -p:ServiceUri=your-service-uri -p: ``` -------------------------------- ### Build and Run Unit Tests (Windows) Source: https://github.com/dotnet/wcf/blob/main/Documentation/developer-guide.md Builds the WCF product and runs all unit tests. Execute from the repository root. ```batch build.cmd ``` -------------------------------- ### Build and Run Unit Tests (Non-Windows) Source: https://github.com/dotnet/wcf/blob/main/Documentation/developer-guide.md Builds the WCF product and runs all unit tests. Execute from the repository root. ```shell ./build.sh ``` -------------------------------- ### Build dotnet-svcutil Source: https://github.com/dotnet/wcf/blob/main/src/dotnet-svcutil/README.md Execute this command in the repository's root directory to build the tool. ```bash eng\common\cibuild.cmd -preparemachine -configuration Release -projects dotnet-svcutil.sln /p:Test=false /p:Sign=false ``` -------------------------------- ### Create WCF Client Project Structure Source: https://github.com/dotnet/wcf/blob/main/Documentation/HowToUseWCFInContainers.md Commands to create a new console application project for the WCF client. This sets up the basic directory structure and project files. ```bash mkdir wcfClient cd wcfClient dotnet new console ``` -------------------------------- ### Build and Run Unit Tests Cross Platform Source: https://github.com/dotnet/wcf/blob/main/Documentation/building/cross-platform-testing.md Execute these scripts from the root of the GitHub repository to build the WCF product and run all unit tests. Results are logged in msbuild.log. ```bash ./build.sh ./build.sh -test ``` -------------------------------- ### Add System.Web.Services.Description Package Source: https://github.com/dotnet/wcf/blob/main/src/System.Web.Services.Description/src/README.md Use this command to add the System.Web.Services.Description package to your project via NuGet. ```bash dotnet add package System.Web.Services.Description ``` -------------------------------- ### List of HTTPS Tests Source: https://github.com/dotnet/wcf/blob/main/Documentation/manualtest-guide.md These are the specific test cases for HTTPS scenarios. Ensure the WCF Test Root CA certificate is installed locally. ```csharp HttpsTests.SameBinding_Soap12_EchoString ``` ```csharp HttpsTests.CrossBinding_Soap11_EchoString ``` ```csharp HttpsTests.SameBinding_Soap11_EchoString ``` ```csharp HttpsTests.ServerCertificateValidation_EchoString ``` ```csharp Https_ClientCredentialTypeTests.BasicAuthenticationInvalidPwd_throw_MessageSecurityException ``` ```csharp Https_ClientCredentialTypeTests.BasicAuthentication_RoundTrips_Echo ``` -------------------------------- ### Clone WCF Repository and Build Source: https://github.com/dotnet/wcf/blob/main/Documentation/building/unix-instructions.md Clone the WCF repository and execute the build script. These instructions have been validated on Ubuntu 14.04. ```bash git clone https://github.com/dotnet/wcf.git cd wcf ./build.sh ``` -------------------------------- ### Run Unit Tests for a Single Project (Windows) Source: https://github.com/dotnet/wcf/blob/main/Documentation/developer-guide.md Builds and tests a specific WCF package. Navigate to the test project directory first. ```batch cd src\System.ServiceModel.Primitives\tests msbuild /t:BuildAndTest ``` -------------------------------- ### List of NegotiateStream Tests Source: https://github.com/dotnet/wcf/blob/main/Documentation/manualtest-guide.md These are the specific test cases for NegotiateStream scenarios with ambient credentials. Ensure the WCF Test Root CA certificate is installed locally. ```csharp StreamingTests.NetTcp_TransportSecurity_StreamedRequest_RoundTrips_String ``` ```csharp StreamingTests.NetTcp_TransportSecurity_Streamed_RoundTrips_String_WithSingleThreadedSyncContext ``` ```csharp StreamingTests.NetTcp_TransportSecurity_Streamed_RoundTrips_String ``` ```csharp StreamingTests.NetTcp_TransportSecurity_Streamed_Async_RoundTrips_String ``` ```csharp StreamingTests.NetTcp_TransportSecurity_StreamedRequest_Async_RoundTrips_String ``` ```csharp StreamingTests.NetTcp_TransportSecurity_StreamedResponse_Async_RoundTrips_String ``` ```csharp StreamingTests.NetTcp_TransportSecurity_StreamedResponse_RoundTrips_String ``` ```csharp StreamingTests.NetTcp_TransportSecurity_Streamed_TimeOut_Long_Running_Operation ``` ```csharp StreamingTests.NetTcp_TransportSecurity_Streamed_Async_RoundTrips_String_WithSingleThreadedSyncContext ``` ```csharp Tcp_ClientCredentialTypeTests.SameBinding_DefaultSettings_EchoString ``` ```csharp Tcp_ClientCredentialTypeTests.SameBinding_SecurityModeTransport_EchoString ``` ```csharp NegotiateStream_Http_Tests.NegotiateStream_Http_AmbientCredentials ``` -------------------------------- ### Build and Run Unit Tests for UWP (NET Native) Source: https://github.com/dotnet/wcf/blob/main/Documentation/developer-guide.md Use msbuild with specific parameters to build and run unit tests for System.ServiceModel.Primitives under UWP. Ensure you 'cd' to the test project folder first. Results are in bin\tests\testresults.xml. ```bash cd src\System.ServiceModel.Primitives\tests msbuild /t:BuildAndTest /p:TargetGroup=netstandard1.3 /p:TestTFM=netcore50aot /p:TestNugetRuntimeId=win10-x64-aot /p:UseDotNetNativeToolchain=true ``` -------------------------------- ### Add System.ServiceModel.UnixDomainSocket Package Source: https://github.com/dotnet/wcf/blob/main/src/System.ServiceModel.UnixDomainSocket/src/README.md Use this command to add the System.ServiceModel.UnixDomainSocket package to your project. ```bash dotnet add package System.ServiceModel.UnixDomainSocket ``` -------------------------------- ### Initialize Kerberos Ticket Source: https://github.com/dotnet/wcf/blob/main/Documentation/manualtest-guide.md Run this command to initialize a Kerberos ticket for a user. You will be prompted for the user's password. ```bash kinit user@REALM.DOMAIN.COM ``` -------------------------------- ### Install Client Certificates in Windows Container Source: https://github.com/dotnet/wcf/blob/main/Documentation/HowToUseWCFInContainers.md PowerShell commands to import a client certificate and its issuing certificate authority into a Windows container's certificate store. These are typically included in a Dockerfile for Windows. ```powershell $pass = ConvertTo-SecureString -AsPlainText -Force password Import-pfxcertificate -certStoreLocation Cert:LocalMachine\My -Password $pass -FilePath client_cert.pfx Import-Certificate -certStoreLocation Cert:LocalMachine\Root -FilePath cert_authority_public.cer ``` -------------------------------- ### Build WCF Packages (Windows) Source: https://github.com/dotnet/wcf/blob/main/Documentation/developer-guide.md Builds all WCF NuGet packages without running unit tests. Execute from the repository root. ```batch build.cmd -- /p:SkipTests=true ``` -------------------------------- ### Configure NuGet Package Sources Source: https://github.com/dotnet/wcf/blob/main/Documentation/using-prerelease-wcf-packages.md Add custom package sources to your NuGet.config file to include pre-release or locally built WCF packages. This allows your application to find and install packages from sources other than the default NuGet.org feed. ```xml ``` -------------------------------- ### Build and Run WCF Client Container Source: https://github.com/dotnet/wcf/blob/main/Documentation/HowToUseWCFInContainers.md Commands to build a Docker image for the WCF client and run it as a container. The 'url' environment variable is passed to configure the WCF client endpoint. ```bash docker build -t wcf_client_in_container . docker run --env url=http://server_name/app_name/Service1.svc -it --rm wcf_client_in_container ``` -------------------------------- ### Add System.ServiceModel.NetFramingBase Package Source: https://github.com/dotnet/wcf/blob/main/src/System.ServiceModel.NetFramingBase/src/README.md Use this command to add the System.ServiceModel.NetFramingBase package to your project via the .NET CLI. ```bash dotnet add package System.ServiceModel.NetFramingBase ``` -------------------------------- ### Run dotnet-svcutil Tests Source: https://github.com/dotnet/wcf/blob/main/src/dotnet-svcutil/README.md Execute this command in the repository's root directory to run tests for the tool. ```bash eng\common\cibuild.cmd -preparemachine -configuration Release -projects dotnet-svcutil.sln /p:Test=True /p:Sign=false ``` -------------------------------- ### Build WCF Packages (Non-Windows) Source: https://github.com/dotnet/wcf/blob/main/Documentation/developer-guide.md Builds all WCF NuGet packages without running unit tests. Execute from the repository root. ```shell ./build.sh -- /p:SkipTests=true ``` -------------------------------- ### Generate Client Code from URL Source: https://github.com/dotnet/wcf/blob/main/src/dotnet-svcutil/README.md Generates client code from a running service or online metadata documents. This is the most basic usage. ```bash dotnet-svcutil http://example.com/service.svc?wsdl ``` -------------------------------- ### Run Automated Tests with Kerberos Source: https://github.com/dotnet/wcf/blob/main/Documentation/manualtest-guide.md Execute build script to run tests. Set `ServiceUri`, `Negotiate_Available`, and `Kerberos_Available` to true for Kerberos authentication tests. ```bash ${GitWcfRoot}/build.sh /p:WithCategories=OuterLoop /p:ServiceUri=${ServiceUri} /p:Negotiate_Available=true /p:Kerberos_Available=true ``` -------------------------------- ### Configure WCF Client Project References Source: https://github.com/dotnet/wcf/blob/main/Documentation/HowToUseWCFInContainers.md Specifies the necessary WCF .NET Core package references for the client project. The exact version numbers may vary based on the SDK used. ```xml Exe netcoreapp1.1 4.3.0 4.3.0 4.3.0 4.3.0 4.3.0 ``` -------------------------------- ### Implement WCF Client to Consume Service Source: https://github.com/dotnet/wcf/blob/main/Documentation/HowToUseWCFInContainers.md Creates a WCF client that connects to a service endpoint using a specified binding and retrieves data. The service URL is expected to be provided via the 'url' environment variable. ```csharp using HelloWcfService; using System; using System.ServiceModel; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var url = Environment.GetEnvironmentVariable("url"); var helloEndpoint = new EndpointAddress(url); var binding = new BasicHttpBinding(); var factory = new ChannelFactory(binding, helloEndpoint); var client = factory.CreateChannel(); var data = client.GetData(5); Console.WriteLine(data); } } } ``` -------------------------------- ### Run Scenario Tests Against IIS-Hosted Service (Windows) Source: https://github.com/dotnet/wcf/blob/main/Documentation/scenario-test-guide.md Execute scenario tests against an IIS-hosted WCF service on a Windows machine. The ServiceUri should be in the format {MachineName}/WcfService{id}. ```bash build-tests.cmd -outerloop -- /p:ServiceUri=myServer/WcfServiceTest ``` -------------------------------- ### Add System.ServiceModel.Primitives Package Source: https://github.com/dotnet/wcf/blob/main/src/System.ServiceModel.Primitives/src/README.md Use this command to add the System.ServiceModel.Primitives package to your project via the .NET CLI. ```bash dotnet add package System.ServiceModel.Primitives ``` -------------------------------- ### Run Scenario Tests Cross Platform Source: https://github.com/dotnet/wcf/blob/main/Documentation/building/cross-platform-testing.md Use this script to run scenario tests on non-Windows machines after ensuring WCF test services are running on a Windows machine. Replace {URL-to-WCF-service} with the actual service base address. ```bash ./build.sh -outerloop -- /p:ServiceUri={URL-to-WCF-service} ``` -------------------------------- ### Build WCF Stress Tests with .NET Core CLI Source: https://github.com/dotnet/wcf/blob/main/src/System.Private.ServiceModel/tests/Stress/readme.md Commands to restore, build, and publish WCF stress tests using the .NET Core CLI. Publishing creates a self-contained application folder for deployment on other machines. ```bash dotnet restore ``` ```bash dotnet build ``` ```bash dotnet publish -o MyPublishedAppFolder -r win7-x64 ``` -------------------------------- ### Add System.ServiceModel.Federation Package Source: https://github.com/dotnet/wcf/blob/main/src/System.ServiceModel.Federation/src/README.md Use this command to add the System.ServiceModel.Federation package to your .NET project via the NuGet package manager. ```bash dotnet add package System.ServiceModel.Federation ``` -------------------------------- ### Run Scenario Tests Against IIS-Hosted Service (Non-Windows) Source: https://github.com/dotnet/wcf/blob/main/Documentation/scenario-test-guide.md Execute scenario tests against an IIS-hosted WCF service from a non-Windows OS. The ServiceUri should be in the format {MachineName}/WcfService{id}. ```bash ./build-tests.sh -outerloop -- /p:ServiceUri=myServer/WcfServiceTest ``` -------------------------------- ### Add System.ServiceModel.NetTcp Package Source: https://github.com/dotnet/wcf/blob/main/src/System.ServiceModel.NetTcp/src/README.md Use this command to add the System.ServiceModel.NetTcp package to your project via NuGet. ```bash dotnet add package System.ServiceModel.NetTcp ``` -------------------------------- ### Add System.ServiceModel.NetNamedPipe Package Source: https://github.com/dotnet/wcf/blob/main/src/System.ServiceModel.NetNamedPipe/src/README.md Use this command to add the System.ServiceModel.NetNamedPipe package to your project via the .NET CLI. ```bash dotnet add package System.ServiceModel.NetNamedPipe ``` -------------------------------- ### Add System.ServiceModel.Http Package Source: https://github.com/dotnet/wcf/blob/main/src/System.ServiceModel.Http/src/README.md Use this command to add the System.ServiceModel.Http package to your .NET project. ```bash dotnet add package System.ServiceModel.Http ```