>백엔드 개발 >C#.Net 튜토리얼 >Remoting 서비스를 통한 ASP.NET 파일 업로드의 자세한 예

Remoting 서비스를 통한 ASP.NET 파일 업로드의 자세한 예

巴扎黑
巴扎黑원래의
2017-05-21 18:34:081366검색

최근에 Remoting에 대해 알아보고 있었는데, Remoting이 정말 좋은 것이라는 걸 깨달았습니다.

일반적으로 원격 기능을 사용하는 세 가지 방법이 있습니다. 하나는

첫 번째 방법: 공용 개체 게시
공용 개체는 로컬에서 생성됩니다
두 번째 방법: 원격 생성 공용 객체(SAO)
클라이언트 요청 시 객체 생성
세 번째 유형: 원격 객체 생성(CAO)
객체는 HOST에서 생성되고, 클라이언트는 해당 객체를 참조한다. 서버

내용 이 세 가지 유형의 본질적인 차이점을 잘 이해하지 못합니다. 이 세 가지 방법의 원격 생성 방법도 다릅니다.

첫 번째 방법
호스트:
ChannelServices.RegisterChannel(new TcpChannel(1500));
cTransfer Trans = new cTransfer();
RemotingServices.Marshal(Trans, " TestService ");클라이언트:
cTransfer T = (cTransfer) Activator.GetObject(typeof(cTransfer),
"tcp://host:1500/TestService");
두 번째 방법
호스트:
ChannelServices.RegisterChannel(new TcpChannel(1500));
RemotingConfiguration.RegisterWellKnownServiceType(typeof(cTransfer),
"TestService", WellKnownObjectMode.Singleton);클라이언트:
cTransfer T = (cTransfer ) 활성자 .GetObject(typeof(cTransfer),
“tcp://host:1500/TestService”);
세 번째 방법
Host:
ChannelServices.RegisterChannel (new TcpChannel(1500) );
RemotingConfiguration.RegisterActivatedServiceType(typeof(cTransfer));Client:
object[] attr = {new UrlAttribute("tcp://host:1500")};
object[] args = { "샘플 생성자 인수"};
cTransfer T = (cTransfer) Activator.CreateInstance(typeof(cTransfer), args, attr);
원격 호출 처리를 허용하는 개체가 필요한 경우 이 개체( 개체)는 상속을 받아야 합니다. MarshalByRefObject 클래스에서.

원격 중에 파일을 전송하는 방법은 무엇인가요? 기본 아이디어는 클라이언트에서 클라이언트의 파일을 열고 Byte[] 유형을 변환한 다음 호스트 개체를 호출하는 것입니다.
클라이언트와 호스트 간에 전송되는 개체
[직렬화 가능]
public struct kAction
{
public string filename;
public byte[] context

} ;Open 파일을 저장하고 스트림 바이트를 Context
Stream fileStream=File.Open(this.transFileName.Text,FileMode.Open);
fileStream.Position=0;
byte[] Content = 새 바이트에 저장합니다. [((int) fileStream.Length) + 1];
fileStream.Read(Content,0,Content.Length) ;
호스트가 Kaction을 읽은 후 아래 지정된 파일 Clip에 저장합니다
MemoryStream meoeryStream=new MemoryStream(k_Action.context);
FileStream fileStream=new FileStream(@"d:"+k_Action.filename,FileMode.Create);
meoeryStream.WriteTo(fileStream); Close();
meoeryStream.Close()
객체에서 새로운 객체를 정의할 수 없는 것으로 확인되었습니다. HOST로 전송을 준비할 때 "잠재적으로 위험한 유형이 포함되어 있습니다"라는 메시지가 표시됩니다.
[직렬화 가능]
public struct kAction
{
public string filename;
public byte[] context;
public FineInfo fileInfo;//here

};

자신의 경험을 기록해 보세요. 시간이 나면 정리해서 다음번에 완전한 글을 만들어 보겠습니다.

cnzc 블로그

위 내용은 Remoting 서비스를 통한 ASP.NET 파일 업로드의 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.