I've just gone through the pain of working out how to get my WPF Browser Application (XBAP) using a WCF service without any security exceptions causing me to attempt to break yet another desk. After hours of frustration I've finally got it working: A WPF Browser application, talking to a WCF service seamlessly and with no security issues. In an attempt to save you the pain (although it was a good learning experience), I've put together a little walkthrough to get you up an running without the problems I went through. The main thing to keep in mind, is that you can only have your XBAP communicate to your WCF service if they are hosted from the same server, as outlined
here. This is the only way it will work with the XBAP partial trust sandbox.
With that in mind, here are the steps I went through to get it up and running.
1. Make sure your WCF project is the WCF Service Application (under the Web tab). Do not use the WCF Service Library (under the WCF tab). This is a little confusing, but it is what Microsoft advised in
this article.

2. Once your WCF project is created - ensure you set the service endpoint bindings to '
basicHttpBinding' (default is wsHttpBinding). You can change this in the Web.config of your WCF project.

3. Set your WCF Service to run on a specific port all the time (this will make more sense later on). You can choose any port, as long as it's unique. Go to Properties->Web->Servers->SpecificPort of your WCF project. In this case I chose port 64610.

4. Now you need to add the Service Reference to your XBAP project (I've assumed so far that you already have your WPF Browser App project created). To do this, just right click on 'Service References' and click 'Add Service Reference'.

When the dialog opens, use the 'Discover' button to find all the WCF Services in your solution. Then just give it a namespace and click OK.

5. Now that your WPF app can see your WCF service, it's time to configure your WPF app so that it looks like its running from the same web server (as I mentioned earlier, this is needed otherwise you will get Security Exceptions such as WebPermission exception during debug runtime). To do this you need to go to set your debug start action to run the PresentationHost.exe (which is located in your Windows\System32 dir), and add some command line arguments which will setup your environment correctly (as to mimic that your WPF app and WCF service are being hosted from the same IP and port). So you should end up with something similar to this:
a) Properties->Debug->StartAction->StartExternalProgram = D:\Windows\System32\PresentationHost.exe
b) Properties->Debug->Start Options->Command line arguments:
-debug "D:\Projects\WCFandXBAP\WpfBrowserApp\bin\Debug\WpfBrowserApp.xbap"
-debugSecurityZoneUrl "http://localhost:64610"
So I'm basically telling the project, that when I debug/run the program from Visual Studio that I want it to run my .xbap file using the PresentationHost.exe, and to run it from the my localhost on port 64610 (which is the same host as the WCF service).

That's it! You should be able to run and debug your WPF Browser Application that talks to a WCF Service with no issues.
Please let me know if you are aware of any ways to improve this process, or if you are aware of any implications from what I have done here.
Good luck with your WPF and WCF development.