В .NET, когда вы совершаете звонки через домены приложения (как вы здесь), вы не можете передавать данные, относящиеся к этому домену приложения.
Общая версия этого заключается в том, что когда вы делаете вызовы между двумя отдельными процессами, вы не можете отправлять информацию, которая является специфической (то есть имеет значение только в этом контексте) для этого процесса, и ожидать, что она будет иметь значение в другом процесс.
Это то, что вы делаете с файловым потоком. Файловый поток - это дескриптор файла в ОС, специфичный для процесса. Нет гарантии, что процесс на том же компьютере, не говоря уже о процессе на другом компьютере, сможет это понять.
Это веб-служба, и это именно та ситуация, в которой вы находитесь, поскольку у вас есть два процесса на разных машинах.
Для решения проблемы отправляемые вами данные должны быть автономными. В данном конкретном случае это означает отправку содержимого всего файла.
Вы должны изменить параметр на байтовый массив, а затем соответствующим образом обработать байты в вашем методе.