[ServiceContract] public interface IService1 {
[OperationContract]
void UploadFile(FileUploadMessage request);
}
[MessageContract]
public class FileUploadMessage {
// 文件在根目录下的子文件夹名
[MessageHeader(MustUnderstand = true)]
public string SavePath;
///文件名
[MessageHeader(MustUnderstand = true)]
public string FileName;
///文件内容
[MessageBodyMember(Order = 1)]
public Stream FileData;
}
配置文件::
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="TransferService" sendTimeout="00:10:00" transferMode="Streamed" messageEncoding="Text" textEncoding="utf-8" maxReceivedMessageSize="9223372036854775807">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/> </binding> </basicHttpBinding> </bindings> <services> <service behaviorConfiguration="DefaultBehavior" name="WebApplication1.Service1"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="TransferService" contract ="WebApplication1.IService1"> </endpoint> <host> <baseAddresses> <add baseAddress="http://localhost:15246/Service1.svc" /> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior name="DefaultBehavior"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> <serviceThrottling maxConcurrentCalls="100" maxConcurrentInstances="100" maxConcurrentSessions="100"/> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> </system.serviceModel>
上传文件:
//A服务器
s1.Service1Client ser1 = new s1.Service1Client();
s1.FileUploadMessage f1 = new s1.FileUploadMessage();
//文件的名称
f1.FileName = FileUpload1.FileName;
//路径
f1.SavePath = "Product";
//文件
f1.FileData = FileUpload1.FileContent;
// //上传文件
s1.IService1 channel = ser1.ChannelFactory.CreateChannel();
channel.UploadFile(f1);
//b服务器器
s2.Service2Client ser2 = new s2.Service2Client();
s2.FileUploadMessage f2 = new s2.FileUploadMessage();
//文件的名称
f2.FileName = FileUpload1.FileName;
//路径
f2.SavePath = "Product";
//文件
f2.FileData = FileUpload1.FileContent;
// //上传文件
s2.IService2 channel2 = ser2.ChannelFactory.CreateChannel();
channel2.UploadFile(f2);
/**********************************/