может ли ответ веб-службы ASMX вернуться с ответом.BinaryWrite?
Вместо того, чтобы возвращать двоичный поток (закодированный MTOM/Base64) в самом веб-методе (как SOAP XML), например:
[WebMethod]
public byte[] Download(string FileName)
....
return byteArray;
Может ли этот метод каким-то образом реагировать (возможно, через объект Server
)?:
Response.BinaryWrite(byteArray);
Псевдо:
[WebMethod]
public DownloadBinaryWrite(string FileName)
...
Response.BinaryWrite(byteArray);
2 ответа:
Да, это возможно. Обратите внимание, что я изменяю тип возвращаемого значения на void, так как мы собираемся писать непосредственно в ответ, и мне нужно вручную установить тип содержимого и завершить ответ.
Обратите внимание, что WebMethod на самом деле не поддерживается в эти дни, вы должны переключиться на Web API или WCF (Если вам нужна поддержка SOAP).[WebMethod] public void Download(string FileName) { HttpContext.Current.Response.ContentType="image/png"; HttpContext.Current.Response.BinaryWrite(imagebytes); HttpContext.Current.Response.End(); }