2010-01-13 3 views
1

Я развернул службу WCF для SharePoint, и на моей собственной машине все работает нормально. Навигация в .svc работает и, как и ожидалось, переход на service.svc/Operation генерирует «метод недопустимого сообщения». Проводка на службу с помощью jQuery также отлично работает на моей машине.Возврат вызова метода ajax службы WCF 404

Однако, когда мой коллега получает последнюю версию от источника управления и развертывает эту функцию, он может перейти к .svc allright, но переход на service.svc/Operation создает 404, а выключение курса без jQuery тоже не работает.

Я имею в виду, что это связано с чем-то я сделал настроить на моей машине (и забыл потом: -S), и мой коллега не Configure еще. Мы запустили ServiceModelReg -i на его машине.

.svc файл выглядит следующим образом: сборка

<%@ ServiceHost Language="C#" Debug="true" Service="NameSpace.ServiceName" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory" %> 

сервиса загружается в сборках секции Web.config и загружается (точки разрыва красные при отладке).

Редактировать: Любой?

+0

Кто-нибудь? Это слишком странно ... – Colin

ответ

1

Мне удалось решить проблему. Мы использовали превосходное решение Sahil Malik с открытым исходным кодом, WCFSupport. Так или иначе DLL не загружалась (хотя регистрация была в web.config для HttpModule и сборки).

После первой попытки самой службы в проекте фиктивного веб-приложения, который я создал в визуальной студии (добавлен файл .svc, добавлен сборник ссылок на dll моей службы в web.config и добавлен новый сайт в IIS), я пришел к выводу, что это не сама услуга, ни какая-либо проблема конфигурации в IIS (т. е. средство servicemodelreg.exe).

Так что это должен был быть код, который сопоставлял запросы на .svc, и, что более важно, запрос на какие-либо его операции не работал. Я скопировал код Сахиля на свое собственное решение, развернул его, а затем он сработал. Почему код работает сейчас, не знаю, может быть, оригинальная dll WCFSupport была повреждена, мы никогда не узнаем.

В любом случае, теперь это работает!

1

Одна вещь, о которой я могу думать, вы пропустили раздел serviceModel в web.config ... это тот случай? Это что-то вроде

<configuration> 
    <system.serviceModel> 
     <services> 
     <service behaviorConfiguration="behavior1" name="HelloWorld.service1"> 
      <endpoint address="" binding="wsHttpBinding" contract="MyServices.IHelloWorld" /> 
      <host> 
      <baseAddresses> 
       <add baseAddress="http://server/_wcf/HelloWorld.svc" /> 
      </baseAddresses> 
      </host> 
     </service> 
     </services> 
     <behaviors> 
     <serviceBehaviors> 
      <behavior name="behavior1"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
     </behaviors> 
    </system.serviceModel> 
    </configuration> 
+0

В папке файла .svc есть небольшой файл web.config, чтобы включить совместимость asnet, но поскольку я использую WebScriptServiceHostFactory, остальное не нужно. – Colin

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