Протокол SOAP основан на вершине HTTP, поэтому он не может выступать в роли службы «PUSH» без выполнения сложных трюков => вы не можете легко создать веб-службу на основе событий в ASP.NET.
Вы также не можете использовать Streams, но вы можете передавать двоичный контент, используя параметры byte [] или возвращаемые типы. Вот как это выглядит в C #:
///Server side
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public byte[] GetFile(string fullName)
{
return File.ReadAllBytes(fullName);
}
}
///Client Side
private void button1_Click(object sender, EventArgs e)
{
Service1 client = new Service1();
pictureBox1.Image = Image.FromStream(
new MemoryStream(
client.GetFile("c:\\apple.jpg")));
}
Вот и все.