<p>In the process of developing my first WCF service and when I try to use it I get "Method not Allowed" with no other explanation. </p>

<p>I've got my interface set up with the ServiceContract and OperationContract:</p>

<pre><code>    [OperationContract]
    void FileUpload(UploadedFile file);
</code></pre>

<p>Along with the actual method:</p>

<pre><code>    public void FileUpload(UploadedFile file) {};
</code></pre>

<p>To access the Service I enter <a href="http://localhost/project/myService.svc/FileUpload" rel="noreferrer">http://localhost/project/myService.svc/FileUpload</a>
but I get the "Method not Allowed" error</p>

<p>Am I missing something?</p>

The basic intrinsic types (e.g.
```
byte
```
,
```
int
```
,
```
string
```
, and arrays) will be serialized automatically by WCF. Custom classes, like your UploadedFile, won't be.
So, a silly question (but I have to ask it...): is UploadedFile marked as a
```
[DataContract]
```
? If not, you'll need to make sure that it is, and that each of the members in the class that you want to send are marked with [DataMember].
Unlike remoting, where marking a class with [XmlSerializable] allowed you to serialize the whole class without bothering to mark the members that you wanted serialized, WCF needs you to mark up each member. (I believe this is changing in .NET 3.5 SP1...)
A tremendous resource for WCF development is what we know in our shop as "the fish book":
Programming WCF Services
by Juval Lowy. Unlike some of the other WCF books around, which are a bit dry and academic, this one takes a practical approach to building WCF services and is actually useful. Thoroughly recommended.