Nicholas Allen's Indigo Blog

Windows Communication Foundation From the Inside

Browse by Tags

Tagged Content List
  • Blog Post: Debugging a Missing HostedTransportConfiguration Type

    When browsing to a service hosted in IIS I get an error that the protocol does not have an implementation of HostedTransportConfiguration type registered. What can cause this? Two things to look at are the IIS site bindings and the installed activation services. All of these examples use net.tcp...
  • Blog Post: Network Tracing Betas

    Two frequently used network diagnostic tools have gotten beta updates this week. Network Monitor is an adapter level capture program that can record and analyze protocol traces. If you join the Connect beta program for Network Monitor 3 you can get access to the latest Network Monitor 3.4 beta release...
  • Blog Post: Legacy Created, Obsoleted, and Destroyed Before Shipping

    As far as I can tell there has never been a description of what the mysterious LegacyExtendedProtectionPolicy property is for that appeared on the HTTP and TCP transports and is now slowly in the process of disappearing. In the small number of places it appeared the property has been marked as obsolete...
  • Blog Post: Parsing Standard Uris, Part 2

    Here's another look at defining what it means to have a URI for the TCP or named pipe transports. You can compare these definitions to the version I gave yesterday using the parser syntax flags. I'll only cover the net.tcp URI scheme as the two are almost identical except for the use of ports. What...
  • Blog Post: Parsing Standard Uris

    The System.Uri class has built-in parsing rules for a variety of schemes, including http, https, file, ftp, gopher, mailto, news, nntp, telnet, and ldap. There are also parsers for the WCF net.tcp and net.pipe schemes. These parsing rules allow a uri using the scheme to be recognized, broken into its...
  • Blog Post: Fix for Error Accessing Remote Endpoint Address

    The Windows networking team has released a fix for accessing the remote endpoint address of a socket that may affect WCF users. When an asynchronous call is made to a thread working with the socket, and the thread exits before the asynchronous call is processed, the wrong remote endpoint address might...
  • Blog Post: Three Networking Questions Answered with Samples

    How do I remove or change the framing headers used for a TCP connection? By writing a transport channel you can control exactly what information is read or written to the TCP socket. An example of doing this is in the WSE interoperability sample . How do I pass credentials from the client to...
  • Blog Post: Using TCP Analyzer to Debug TCP Performance

    Microsoft Research has a Network Monitor 3.3 plugin called TCP Analyzer that helps identify performance problems from a captured TCP session. TCP Analyzer takes a Network Monitor trace and performs visualization and analysis of the TCP connection. The analysis tries to identify what factor is most limiting...
  • Blog Post: What Will Be New in Networking for Beta 2

    The NCL team has released their list of new networking features for .Net framework 4 beta 2 . A partial summary of the features is: Opening socket connections using the DNS name of the machine Opening socket connections for IPv4 and IPv6 simultaneously Using SSL for authentication only ...
  • Blog Post: Finding Free Ports, Part 2

    Yesterday I talked about the algorithm the TCP transport uses to reserve a unique port when listening on both IPv4 and IPv6 addreses is enabled for a service. Why are the random port numbers drawn from the range 49152-65535? Because that’s the range the operating system uses for dynamic port allocations...
  • Blog Post: Finding Free Ports

    One of the options for the listen URI for the TCP transport is to let the transport make the address unique by filling in details such as the port number. The socket API allows specifying a wildcard port but at the time WCF was written the wildcard port option could only be used with a single IP version...
  • Blog Post: Tuning ConnectionBufferSize

    Poor network utilization for large TCP data transfers is often a symptom of an overly small ConnectionBufferSize . The ConnectionBufferSize is the size of the send and receive buffers used by the connection oriented transports, and in particular the TCP transport where the default size is 8 KB. If...
  • Blog Post: Ephemeral Port Limits

    Every time you open a connection to another machine you need to have a port both at the local machine and the remote machine for exchanging data. The port at the remote machine is typically well known in the sense that the port number is a fixed number or published through some mechanism that doesn't...
  • Blog Post: Cross Domain Policy Extras

    Today's post wraps up the series on cross-domain policy files with some side stories that you probably don't have to deal with when using WCF in Silverlight. I've been giving all of the examples using the defined Silverlight policy format. However, if the host you’re trying to connect to doesn't...
  • Blog Post: TCP Throttling

    As I mentioned on the 30th anniversary of IP , an early and fundamental split was made in TCP to distinguish point-to-point messaging from end-to-end messaging. The split is based on a philosophy that the communication endpoints should be in control and that there should be a minimal amount of functionality...
  • Blog Post: 30 Years of IP

    In January 1978, Vint Cerf and Jon Postel released a draft for Version 3 of the Specification of Internetwork Transmission Control Program (I'll just refer to it as TCP-3). TCP-3 is an ancestor of the modern TCP/IP protocol and this draft is the first specification I know of that has a split between...
  • Blog Post: 25 Years of TCP/IP on the Internet

    On January 1st, 1983 the ARPANET officially switched over from using NCP (Network Control Protocol) to TCP/IP (Transmission Control Protocol over Internet Protocol). This followed a year where the ARPANET supported a mix of NCP and TCP/IP machines using relay servers that supplied Telnet, FTP, and mail...
  • Blog Post: TCP Keep Alive

    How do I detect when the other side of a TCP connection has gone away? Does TCP keep-alive take care of this for me? Although we take it for granted that change can be quickly detected for closely connected components, it turns out to be surprisingly difficult to detect change when two machines...
  • Blog Post: Configuring TCP Activation from the Command Line

    Can I configure non-HTTP web service activation from the command line? Yes, and you don't need any special tools if you're already familiar with configuring IIS from the command line. I've already talked about how to configure a new web site or application for activation in a previous post. Modifying...
  • Blog Post: More about Client IP Addresses

    Back in May I talked about the problem of getting client IP addresses , which you don't have any good way to solve today in WCF. There were a lot of strong comments on that post that this was a feature that people really needed. As it turns out, this was a feature that we wanted to get into Orcas but...
  • Blog Post: Choosing a Port

    A common question is what port should be chosen for publishing a service. I'm assuming that the question is being asked because no one has told you that you must use a certain port for contractual or operational reasons. If you have to use a particular port, then there isn't a lot of choice in the matter...
  • Blog Post: Socket Failures

    What is the lifetime of a TCP session? The lifetime of the session object from a TCP transport channel lasts exactly as long as you own the underlying TCP connection. Once you give up ownership of the TCP connection, either by saying that you're done with it or by having it fault, the lifetime of...
  • Blog Post: Hosting on Machines with Multiple Addresses

    I have a machine with multiple network cards. How do I control which networks my service listens on? The answer to this question is going to be specific to the transport that you're using. I'll cover the HTTP and TCP transports that WCF ships with. Talking about addresses for the named pipe transport...
  • Blog Post: Format for Configuring HTTP and TCP Activation

    IIS uses some inscrutable strings to configure the activatable bindings of a web site. Here's the minimum you need to interpret a binding and get started working with activation. Activation is controlled by the activationHost.config file. In the list of web sites, each site has a binding section that...
  • Blog Post: Keeping Connections Open in IIS

    My web service needs to periodically broadcast messages to clients. The service is an Internet-facing application hosted inside of IIS. What's the best way to do this? The big limitation in this scenario is that your clients might be behind a firewall and non-addressable. There are basically two architecture...
Page 1 of 2 (39 items) 12