WCF 405 Метод не разрешен Сумасшедшая ошибка Справка! - PullRequest
0 голосов
/ 15 марта 2010

Я схожу с ума, я прочитал десятки статей также на stackoverflow о том, что я вызываю webservice спокойным способом и должен включить это в сервисе и в webconfig, так что я сделал это, но как только я добавил [WebGet ( )] Атрибут я получаю эту сумасшедшую ошибку, если я удаляю ее, тогда служба вызывается без проблем

я использую

  • VS 2010 RC 1
  • IIS 7
  • Windows 7

вот мой код

[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode    
=AspNetCompatibilityRequirementsMode.Allowed)]
public class Service2
{

[OperationContract]
[WebGet()]
public List<Table1> GetCustomers(string numberToFetch)
{
    using (DataClassesDataContext context = new DataClassesDataContext())
    {

        return context.Table1s.Take(numberToFetch).ToList( );
    }
}

}

и мой код страницы ASPX

<body xmlns:sys="javascript:Sys"   
    xmlns:dataview="javascript:Sys.UI.DataView">  
  <div id="CustomerView"   
      class="sys-template"  
      sys:attach="dataview"  
      dataview:autofetch="true"  
      dataview:dataprovider="Service2.svc"  
      dataview:fetchParameters="{{ {numberToFetch: 2} }}"  
      dataview:fetchoperation="GetCustomers">  
      <ul>  
          <li>{{name}}</li>  
      </ul>  
  </div> 

и мой код Web.config

    <system.serviceModel>
    <behaviors>
        <endpointBehaviors>
            <behavior name="Service2AspNetAjaxBehavior">
                <enableWebScript />
            </behavior>
        </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
        multipleSiteBindingsEnabled="true" />
    <services>
        <service name="Service2">
            <endpoint address="" behaviorConfiguration="Service2AspNetAjaxBehavior"
                binding="webHttpBinding" contract="Service2" />             
        </service>
    </services>
</system.serviceModel>

полностью признателен за помощь

1 Ответ

2 голосов
/ 18 мая 2010

Попробуйте добавить метод украшения:

[WebInvoke(Method = "GET")]

Кроме того, вы столкнетесь с междоменными проблемами в Firefox, если попытаетесь сделать запрос службе в другом домене или порту. Поэтому, если ваше веб-приложение работает на localhost:80, а служба WCF настроена на localhost:10305, Firefox вернет 405.

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