有谁知道,或更好,但有一个WCF服务,将接受表单POST编码的例子, multipart/form-data
即。 从网页文件上传?
我想出了空对谷歌。
钽,蚂蚁
有谁知道,或更好,但有一个WCF服务,将接受表单POST编码的例子, multipart/form-data
即。 从网页文件上传?
我想出了空对谷歌。
钽,蚂蚁
所以,在这里去...
创建其中一个手术,接受其唯一的参数流服务合同,如下面WebInvoke装饰
[ServiceContract]
public interface IService1 {
[OperationContract]
[WebInvoke(
Method = "POST",
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "/Upload")]
void Upload(Stream data);
}
创建类...
public class Service1 : IService1 {
public void Upload(Stream data) {
// Get header info from WebOperationContext.Current.IncomingRequest.Headers
// open and decode the multipart data, save to the desired place
}
而配置,接受流数据,最大尺寸
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="WebConfiguration"
maxBufferSize="65536"
maxReceivedMessageSize="2000000000"
transferMode="Streamed">
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="Sandbox.WCFUpload.Web.Service1Behavior">
<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Sandbox.WCFUpload.Web.Service1" behaviorConfiguration="Sandbox.WCFUpload.Web.Service1Behavior">
<endpoint
address=""
binding="webHttpBinding"
behaviorConfiguration="WebBehavior"
bindingConfiguration="WebConfiguration"
contract="Sandbox.WCFUpload.Web.IService1" />
</service>
</services>
</system.serviceModel>
此外,在对System.Web增加数据的允许的System.Web量
<system.web>
<otherStuff>...</otherStuff>
<httpRuntime maxRequestLength="2000000"/>
</system.web>
这仅仅是基础,但允许添加一个进步的方法来显示一个Ajax进度条,你可能要增加一些安全性。
我不知道究竟你想在这里完成的,但有一个在“经典”基于SOAP的WCF没有内置支持捕获和处理表单提交的数据。 你必须自己做。
在另一方面,如果你在谈论用的WebHttpBinding基于REST的WCF,你可以肯定的是装饰与[WebInvoke()]属性,它会用HTTP POST方法来调用服务的方法。
[WebInvoke(Method="POST", UriTemplate="....")]
public string PostHandler(int value)
URI模板将定义的URI使用在HTTP POST应该去。 你必须挂钩,截至ASP.NET窗体(或任何你正在使用的实际做的文章)。
对于一个伟大的介绍休息风格WCF,看看阿隆Skonnard的屏幕投系列在WCF REST入门套件,以及如何使用它。
渣