2013-09-23 3 views
1

Возможно ли установить связь между службами SharePoint 2010 и службами обслуживания с использованием строго типизированных клиентов? ServiceStack клиент Lib работает на .net 4 рамки (это не правильно видеть мой редактирует раздел) (SP2010 на .net 3.5) вызывает исключение BadFormatImage ...Sharepoint 2010 - как общаться с сервисами ServiceStack.net?

Я пытался подключиться с помощью мастера WCF (с SharePoint дизайнер), но это было безуспешно.

EDIT Настоящая проблема заключается в том, что я устанавливаю стек стека под именем nant. Я использовал .net 4 ilasm вместо 2.0.

<target name="signss" description="sign service stack assemblies"> 
    <foreach item="File" property="filename"> 
     <in> 
     <items basedir="lib"> 
      <include name="**/ServiceStack*.dll" /> 
     </items> 
    </in> 
    <do> 
     <echo message="${filename}"/> 
     <echo message="${path::get-directory-name(filename)}"/> 
     <exec failonerror="true" program="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe"> 
      <arg value="${filename}" /> 
      <arg value="/out:${path::get-directory-name(filename)}/${path::get-file-name-without-extension(filename)}.il" /> 
     </exec> 


     <exec failonerror="true" program="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ilasm.exe"> 
      <arg value="${path::get-directory-name(filename)}/${path::get-file-name-without-extension(filename)}.il" /> 

      <arg value="/dll" /> 
      <arg value="/key=ss.snk" /> 
      <arg value="/output=${path::get-directory-name(filename)}/${path::get-file-name-without-extension(filename)}.dll" /> 
     </exec> 
    </do> 
    </foreach> 
    </target> 

Nant Теперь задача подписать и перекомпиляции библиотеки .net 2 сборки, но до сих пор у меня проблема, когда я пытаюсь использовать ServiceStack.Common в моем решении Sharepoint 2010.

var client = new JsonServiceClient("http://host:8080/"); 

дает ошибку

об ошибке 16 Тип «ServiceStack.Service.IServiceClientAsync» определяется в сборке, которая не ссылается. Вы должны добавить ссылку на сборку «ServiceStack.Interfaces, Version = 3.9.60.0, Culture = neutral, PublicKeyToken = null '.

Я должен изменить токен открытого ключа в ссылочных сборках, теперь это null ... Я попытаюсь изменить задачу nant, чтобы исправить этот ключ на .il-файлах.

+1

Посмотрите на руководящих принципов и ограничений [Поддержка SOAP ServiceStack в] (https://github.com/ServiceStack/ServiceStack/wiki/SOAP- поддержка). Также этот пример, показывающий [SharePoint вместе с ServiceStack] (http://www.mattjcowan.com/funcoding/2012/05/04/building-a-web-api-in-sharepoint-2010-with-servicestack/), может помочь , – mythz

+0

Есть ли способ получить фактические сборки SS с сильными именами, используя nuget? Решения Sharepoint, на которые ссылаются asseblies, должны иметь прочные имена. – marcinn

+0

просил проголосовать за v4, [голосовать за функцию, чтобы определить приоритет] (http://servicestack.uservoice.com/forums/176786-feature-requests/suggestions/4458755-add-optional-strong-named -nuget-пакеты) – mythz

ответ

2

Если вы хотели бы использовать Client Service Stack с Sharepoint 2010 вам необходимо:

  • Скачать исходники из GitHub (новейший совершает с использованием .net 3.5):

ServiceStack https://github.com/ServiceStack/ServiceStack/commit/4cdc5b5a87ea18dce77840252b72e680e29a6bd5

ServiceStack.Text https://github.com/ServiceStack/ServiceStack.Text/commit/cd1f130c1a9a2c4c79e62fb3e487197956d1f56b

  • Знак сборки ServiceStack.Common, ServiceStack.Text, ServiceStack.Interfaces
Смежные вопросы