Пользовательская служба SharePoint 2010 WCF - как установить параметр MaxReceivedMessageSize - PullRequest
1 голос
/ 18 октября 2010

Я разработал пользовательскую веб-службу WCF в пустом проекте SharePoint 2010 Visual Studio.

Моя веб-служба работает хорошо.Проблема связана с размером запроса, который я могу отправить этому веб-сервису.Я понял, что это что-то около 300Kb.Если я пойду дальше, сервис / клиент отправит мне исключение.

Я посмотрел в Интернете и увидел, что параметр MaxReceivedMessageSize может быть моим решением.Я пытался использовать метод FeatureActivation для установки этой информации с помощью такого типа запроса:

// 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!

С этим кодом у меня отказано в доступе (на самом деле я администратор семейства сайтов).

Я также знаю, что этот параметр может быть установлен в app.config хоста веб-службы, но в SharePoint, где мне нужно изменить этот параметр.

1 Ответ

1 голос
/ 18 октября 2010

Я думаю, вы должны внести это изменение в файл web.config веб-приложения, в котором активирована эта функция. SharePoint предоставляет API для внесения изменений в web.config. Фактически, использование API для внесения изменений в ваш файл web.config является предпочтительным вариантом, поскольку SharePoint использует задание таймера и выполняет одинаковые обновления для всех серверов веб-интерфейса в вашей среде. Есть два способа внести изменения в web.config, как описано здесь:

http://msdn.microsoft.com/en-us/library/ms460914.aspx

В вашем случае, поскольку вы хотите вносить изменения только при активации вашей функции, вы должны использовать подход API, описанный здесь: http://msdn.microsoft.com/en-us/library/bb861909.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...