Home Page
http://policyserver.turnitin.co.uk

Project Description
Scalable high performance policy file server for both Silverlight and Adobe Flash. To serve a cross domain policy file on any chosen port, e.g 843, 943 etc.

This project is written in C# .NET using the Reactor pattern and can be configured depending on the size of your project

Notes
I wrote this application ages ago for a Flash based video streaming and chat website. However it just so happens it also works with Silverlight if you configure it with the correct policy file format. Any way I thought I'd release it, be shame to see it go to waste.

Because I've done nothing to document this tool just quickly a comment about each of the arguments in the sample config file below:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="listeningPorts" value="943" />
    <add key="bindTo" value="0.0.0.0" />
    <add key="threadPoolCount" value="10" />
    <add key="policyFile" value="policyfile.xml" />
  </appSettings>
</configuration>


listeningPorts - Is a comma separated list of port numbers on which this instance should listen. If you need to serve different files on different ports you should configure and launch separate instances of the policy server.
bindTo - If you have multiple IP addresses on the host machine, use this property to specify the IP to bind to. Otherwise 0.0.0.0 to bind to all. There is no current support for multiple bindings.
threadPoolCount - The number of threads created to handle requests. I've found that this should be the same as the number of cores of your machine if you dedicate a server. You should do your own experimentation.
policyFile - File path of the policy file to serve. Policy server makes no attempt to validate or understand the content of this file, that is your responsibility.


Words from me (the author)
I know that there are little resources available for telling you how to serve these mystery policy files, it seems both Microsoft - although slightly better than - and Adobe neglected to provide this information. So here's one I made earlier. I ran it using Fire Daemon so that I could serve multiple files on different ports bound to different IP addresses. Any way thanks for taking a look. Please feel free to contact me if you have any questions, find any bugs or would like to contribute.

Thanks all and good luck,

Liam.

Last edited Jul 27, 2009 at 8:03 PM by liamlowey, version 5