SharePoint 2013 自定义WCF上传文档报错

霖雨 版主
博客专家认证
2014-03-11 09:56:28
环境:Windows Server 2012 + SharePoint 2013 + Visual Studio 2012
代码:SharePoint解决方案自定义WCF服务
功能:提权上传文档到文档库
报错:
未经处理的异常: System.ServiceModel.ProtocolException: 远程服务器返回了意外响应
: (413) Request Entity Too Large。 ---> System.Net.WebException: 远程服务器返回
错误: (413) Request Entity Too Large。
在 System.Net.HttpWebRequest.GetResponse()
在 System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpC
hannelRequest.WaitForReply(TimeSpan timeout)
--- 内部异常堆栈跟踪的结尾 ---

说明:
我写的WCF服务,有两个方法,一个是测试用的获取站点Title,没有问题;另一个是上传文档到文档库,文档很小的时候(大约几KB)没有问题,文件过大(10MB左右)报错,响应实体太大;
我昨天查了一天资料,有说需要配置IIS的MetaBase.xml里面<IIsWebService节点下的AspMaxRequestEntityAllowed="204800",但是windows server 2012的MetaBase.xml里面默认没有这个节点,手动添加不好使!
还有说配置SVC的web.config,然后endpoint报错
已将绑定实例关联到侦听 URI“http://spappdev/_vti_bin/UploadApp/UploadService.svc”。如果两个终结点要共享相同的 ListenUri,则它们必须也共享相同的绑定对象实例。可以在 AddServiceEndpoint() 调用、配置文件或 AddServiceEndpoint() 和配置文件的组合中指定两个冲突的终结点。
附配置文件
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="NewBinding0" maxBufferPoolSize="5242880000" maxBufferSize="655360000"
maxReceivedMessageSize="655360000" />
</basicHttpBinding>
</bindings>
<services>
<service name="sp.UploadService">
<host>
<baseAddresses>
<add baseAddress="http://myserver/_vti_bin/UploadApp/UploadService.svc" />
</baseAddresses>
</host>
<endpoint address="" bindingConfiguration="NewBinding0" binding="basicHttpBinding" contract="sp.IUploadService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
总而言之,言而总之,改IIS配置文件没起作用,也可能自己没改对;IIS里面的配置,没找到有好用的;改WCF的配置,没改通。。太纠结了。。希望大家帮我想想办法~~谢谢了~~
...全文
288 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
霖雨 版主 2014-03-22
  • 打赏
  • 举报
回复
Web.config 文件包含在文件系统中的以下文件夹中: • \\Inetpub\wwwroot\wss\VirtualDirectories\端口号 — 为 SharePoint 内容 Web 应用程序定义配置设置的 web.config 文件。 • \\Inetpub\wwwroot\wss\VirtualDirectories\管理中心的端口号 — 为 SharePoint 管理中心应用程序定义配置设置的 web.config 文件。 • \\Inetpub\wwwroot\wss\VirtualDirectories\端口号\wpresources — 在 Web 应用程序的 Web 部件资源中使用的 web.config 文件。 • \\Program Files\Common Files\Microsoft Shared\Web Server Extensions\wpresources — 在全局程序集缓存的 Web 部件资源中使用的 web.config 文件。 重要注释 重要信息 不应修改 \wpresources 文件夹中的 web.config 文件。这些文件的设置不允许可编译的页面或项目。如果更改了这些设置,则已编译代码的安全状态将与从本地驱动器:\Inetpub\wwwroot 目录运行的代码的安全状态大不相同。 • %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\CONFIG — 共同定义用于扩展其他 Web 应用程序的配置设置的 web.config 文件和其他 .config 文件。 • %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI — 为 /_vti_bin 虚拟目录定义配置设置的 web.config 文件。 • %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS — 为 /_layouts 虚拟目录定义配置设置的 web.config 文件。
霖雨 版主 2014-03-22
  • 打赏
  • 举报
回复
引用 1 楼 linyustar 的回复:
没人回复我的帖子,我重新写了WCF服务,独立部署到单独的一个应用程序,修改web.config后上传到sharepoint文档库,文件大小没有限制;但是封装成sharepoint解决方案,上传文档大小就受限,能改的Web.config都改了,不知道还有其他地方限制没有?!
引用 2 楼 FoxDave 的回复:
config有15里面的layouts下的,admin下的,WebService文件夹里也有好多 你改改前两个试试
感谢二位回复,问题没解决,但是还是结贴吧。。。
霖雨 版主 2014-03-22
  • 打赏
  • 举报
回复
感谢二位,虽然问题没解决,我还是结贴吧; wcf独立部署没有问题,上传到sharepoint文档库也正常;然后封装成sharepoint的解决方案,就不正常了,我只能理解sharepoint做了限制;layouts下面的、admin下面的、isapi下面的、应用程序下面的config都改过了,不好使,所有能改的地方都改了;iis的uploadheader改过了,httpruntime改过了,maxRequestLength也改过了,我改了几乎所有能改的web.config。。服务器端的web.config和客户端的也都设置过了,问题没解决,还是结贴吧。。
天涯海角 2014-03-21
  • 打赏
  • 举报
回复
参考:http://sharepoint.stackexchange.com/questions/11655/sharepoint-hosted-wcf-service-file-uploads
Justin-Liu 2014-03-20
  • 打赏
  • 举报
回复
config有15里面的layouts下的,admin下的,WebService文件夹里也有好多 你改改前两个试试
霖雨 版主 2014-03-19
  • 打赏
  • 举报
回复
没人回复我的帖子,我重新写了WCF服务,独立部署到单独的一个应用程序,修改web.config后上传到sharepoint文档库,文件大小没有限制;但是封装成sharepoint解决方案,上传文档大小就受限,能改的Web.config都改了,不知道还有其他地方限制没有?!

3,242

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 SharePoint
社区管理员
  • SharePoint社区
  • 霖雨
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧