나는 전에 WCF를 사용한 적이 없지만 간단한 서비스를 만들고 싶습니다. 컴퓨터가 로컬 컴퓨터에서 파일을 업로드하도록합니다. 내 인터페이스이있어 : 방법에WCF 업로드 파일
[OperationContract]
[WebInvoke(Method = "GET",UriTemplate = "/File")]
Stream GetFile();
가, 난 그냥 이렇게 : 나는 클라이언트에서이 프로그램을 실행할 때
return new FileStream(@"c:\myfile.zip", FileMode.Open);
는 Result
속성은 스트림 자체가 포함되어 있습니다. 이것은 괜찮 았는데, 그것은 작동하지만, 오히려 클라이언트가 전체를 복사하는 대신 서버 자체에서 파일에 액세스하고 싶습니다. 클라이언트가 서버에서 직접 액세스 할 수 있도록 업로드 된 파일의 URL은 무엇입니까? 나는 그것이 http://computername:port/something...
이라고 생각했다. (이것이 REST 서비스라고 생각한다.)
수 파일 내용으로 무언가를해야한다면 어쨌든 그것을 (스트림, 공유 폴더, http, ftp 등) 공유하는 것과 상관없이 복사해야합니다. 그렇지 않습니까? – ChrisWue
그러나 클라이언트가 WCF 서비스를 사용하지 않으면 어떻게됩니까? 파일에 직접 액세스 할 수 있다고 가정합니까?또한 위의 메서드는 전체 파일 (예 : 음악, 비디오 등)을 먼저 다운로드하므로 스트리밍을 허용하지 않습니다. – Skoder
WCF를 사용하여 파일을 스트리밍하려면 transferMode 속성을 "Streamed"로 설정하여 스트림을 스트리밍하면됩니다. 전체 응답을 사용할 수있을 때까지 대기하는 버퍼링 된 모드가 아닌 파일을 계속 가져옵니다. – Rajesh