我在SharePoint 2010 Visual Studio空项目中开发了自定义WCF Web服务。
我的网络服务运作良好。该问题与我可以发送到此Web服务的请求的大小有关。我意识到这是300Kb左右。如果我比那更大,服务/客户端就会向我发送一个例外。
我在网上浏览过,看到MaxReceivedMessageSize设置可能是我的解决方案。我尝试使用FeatureActivated方法使用这种请求设置此信息:
// increase maximum size of requests to this web service: http://msdn.microsoft.com/en-us/library/ff599489.aspx
SPWebService contentService = SPWebService.ContentService;
contentService.ClientRequestServiceSettings.MaxReceivedMessageSize = -1;
SPWcfServiceSettings csomWcfSettings = new SPWcfServiceSettings();
csomWcfSettings.MaxReceivedMessageSize = 10485760; // 10MB
contentService.WcfServiceSettings["PT-SP-P2S-DocumentCreator.svc"] = csomWcfSettings;
contentService.Update(); // access denied thrown here!
使用该代码,我拒绝访问(我实际上是网站集管理员)。
我也知道可以在Web服务主机的app.config中设置此参数,但是在SharePoint中,我需要在哪里更改此参数。
答案 0 :(得分:1)
我认为您应该在激活该功能的Web应用程序的web.config文件中进行此更改。 SharePoint提供了用于更改web.config的API。事实上,使用API来更改web.config是首选选项,因为SharePoint使用Timer Job并对您环境中的所有Web前端服务器进行相同的更新。有两种方法可以对web.config进行更改,如下所述:
http://msdn.microsoft.com/en-us/library/ms460914.aspx
在您的情况下,由于您只想在激活功能时进行更改,因此您将采用此处记录的API方法:http://msdn.microsoft.com/en-us/library/bb861909.aspx