Когда клиент "создает экземпляр" вашего веб-сервиса, он не вызывает конструктор вашего сервиса. Это создание экземпляра локального прокси-объекта, представляющего ваш сервис. Прокси-объект, сгенерированный .NET, поддерживает только конструктор по умолчанию. Вот почему вы получаете ошибку компилятора.
Причина, по которой работает локальный объект, заключается в том, что вы на самом деле не вызываете веб-сервис. Вы просто создаете экземпляр локального объекта и затем вызываете метод для него.
Я думаю, вам нужно изменить свой подход, чтобы передавать все данные, необходимые для WebMethod. Типичный подход к веб-службам заключается в том, чтобы иметь службу без сохранения состояния, которая принимает все данные, необходимые для выполнения запрошенной операции.
Например:
[WebMethod]
public string DoSomething(string name, string otherData)
{
ayyash yourObject = new ayyash(name);
return yourObject.DoIt(otherData);
}