WCF 서비스를 받기 위한 이미지
-
01-07-2019 - |
문제
는 가장 좋은 방법은 무엇입을 만드는 웹 서비스를 받아들이는 이미지입니다.이미지도 아주 큰 나는 원하지 않을 변경하는 기본 수신기에 대한 웹 응용 프로그램입니다.내가 쓴 한가지 바이너리 이미지는 느낌 있는 더 나은 대안입니다.
해결책
어디에이 이미지를"살고 있습니까?" 그것은에 액세스할 수 있는 로컬 파일 시스템 또는 응용 프로그램입니다.그렇다면,내가 당신의 웹 서비스를 받는 URI(수 있습 URL 또는 로컬 파일)그리고 스트림으로,다음 사용하 StreamReader 의 내용을 읽습니다.
예(그러나 포장 이외에 FaultExceptions 추가 FaultContractAttributes):
using System.Drawing;
using System.IO;
using System.Net;
using System.Net.Sockets;
[OperationContract]
public void FetchImage(Uri url)
{
// Validate url
if (url == null)
{
throw new ArgumentNullException(url);
}
// If the service doesn't know how to resolve relative URI paths
/*if (!uri.IsAbsoluteUri)
{
throw new ArgumentException("Must be absolute.", url);
}*/
// Download and load the image
Image image = new Func<Bitmap>(() =>
{
try
{
using (WebClient downloader = new WebClient())
{
return new Bitmap(downloader.OpenRead(url));
}
}
catch (ArgumentException exception)
{
throw new ResourceNotImageException(url, exception);
}
catch (WebException exception)
{
throw new ImageDownloadFailedException(url, exception);
}
// IOException and SocketException are not wrapped by WebException :(
catch (IOException exception)
{
throw new ImageDownloadFailedException(url, exception);
}
catch (SocketException exception)
{
throw new ImageDownloadFailedException(url, exception);
}
})();
// Do something with image
}
다른 팁
할 수 없는 업로드 이미지를 사용하여 서버 FTP,다음이 완료되면 서버는(그래서 WCF 서비)반 쉽게 액세스합니까?되는 것을 방지할 수 있습니다 필요 사상가로 수신기 설정 등입니다.
최소는 어떻게 나았습니다.
제휴하지 않습니다 StackOverflow