2013-07-14 3 views
0

Я пытаюсь решить, как разместить службу wcf в sharepoint 2010, которая использует виндзорский замок. Я могу разместить свой собственный стандартный веб-сервис без каких-либо проблем, используя одну из сервисных заводов от http://msdn.microsoft.com/en-us/library/ff521586(v=office.14).aspx. Настройка обычной службы wcf с виндзором замка включает в себя модификацию global.asax, но, поскольку это не рекомендуется для SharePoint, я создал HttpModule, который настраивает контейнер, и я обновил веб-конфигурацию, чтобы использовать его, создав функцию приемник. Моя проблема в том, куда идти дальше. Я использую MultipleBaseAddressBasicHttpBindingServiceHostFactory для моей службы, потому что это динамически настраивает все конечные точки для службы на основе конфигурации IIS, но для использования виндзора замка похоже, что необходимо изменить на использование поставляемого Castle.Facilities.WcfIntegration.WindsorServiceHostFactory , Я попробовал просто переключиться, чтобы посмотреть, что произойдет, но это, похоже, не работает. Я получаю следующую ошибкуSharePoint 2010 провел wcf и windsor замка

Error: Cannot obtain Metadata from <svc url> If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error URI: <svcurl> Metadata contains a reference that cannot be resolved: '<svcurl>'. The requested service, '<svcurl>' could not be activated. See the server's diagnostic trace logs for more information.HTTP GET Error URI: <svcurl> There was an error downloading '<svcurl>'. The request failed with HTTP status 404: Not Found. 

Я предполагаю, что это потому, что я не настроен конечной точки для службы, но несколько примеров, которые я видел в Интернете, кажется, не либо.

Может ли кто-нибудь получить виндзорский замок и sharepoint wcf работать - желательно с динамической конфигурацией, если это возможно?

ответ

0

Сообщение об ошибке, которое вы получаете, заключается в том, что метаданные службы не опубликованы. Для этого нужно 2 вещи:

MEX конечной точки для службы:

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 

и сервис мета-данные включены в поведении службы:

<serviceMetadata httpGetEnabled="True" /> 
+0

Хорошо, но как я должен определить config для сервиса? На данный момент все мои службы sharepoint wcf используют динамическую конфигурацию на основе либо MultipleBaseAddressBasicHttpBindingServiceHostFactory, и я добавил атрибут BasicHttpBindingServiceMetadataExchangeEndpoint в класс службы, чтобы включить конечную точку mex. – mcricker

Смежные вопросы