2012-10-04 56 views
0

我在我的ASP.Net web窗体中有一个RadGrid。 现在我想通过AjaxEnabledWCFService在客户端进行绑定。 在完成所有实现之后,似乎通过响应 检索数据,但不是在网格中显示它,而是显示“不允许的方法”之类的问题。方法不允许。 AjaxEnabledSCFService错误

我无法找到此错误背后的实际原因,以及未填充dat的原因是什么。

这里是我实现的细节: - 我已经添加了特定服务的脚本经理象下面这样: -

<telerik:RadScriptManager ID="RadScriptManager1" runat="server"> 
     <Services> 
       <asp:ServiceReference Path="~/services/CustomerListService.svc" /> 
     </Services> 
     <Scripts> 
      <%--Needed for JavaScript IntelliSense in VS2010--%> 
      <%--For VS2008 replace RadScriptManager with ScriptManager--%> 
      <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> 
      <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> 
      <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> 
     </Scripts> 
    </telerik:RadScriptManager> 

然后添加服务到radgrid控件ClientEvents - 数据绑定标签象下面这样: -

<DataBinding SelectMethod="GetCustomers" Location="~/services/CustomerListService.svc" 
        SortParameterType="Linq" FilterParameterType="Linq"> 
       </DataBinding> 

我有一个名为orderListService与DataContract如订单),如下代码的服务, 的ServiceContract为GetCustomers的(: -

例:

[的ServiceContract(命名空间= “”)] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 公共类CustomerListService {

[OperationContract] 
public List<Customer> GetCustomers() 
{ 
    CustomerData CustData = new CustomerData(); 
    System.Data.DataTable dt = CustData.GetCustomersList(1, 1, ""); 

    List<Customer> Customerist = new List<Customer>();//Here Customer is DataContract 
    foreach (System.Data.DataRow dr in dt.Rows) 
    { 
     Customer cust = new Customer(); 
     SetPropertiesFromOrderRow(cust, dr);//set all the property values from DataRow to Order 
     CustomerList.Add(cust); 
    } 

    return CustomerList; 
} 

}

中的设置配置文件如下所示: -

<endpointBehaviors> 
    <behavior name="ClientSideBindingTest.services.CustomerListServiceAspNetAjaxBehavior"> 
    <enableWebScript /> 
    </behavior> 
    </endpointBehaviors> 

    <services> 
    <service name="ClientSideBindingTest.services.CustomerListService"> 
    <endpoint address="" behaviorConfiguration="ClientSideBindingTest.services.CustomerListServiceAspNetAjaxBehavior" 
    binding="webHttpBinding" contract="ClientSideBindingTest.services.CustomerListService" /> 
    </service> 
    </services> 

请让我知道是否有人在这里有任何建议,也需要知道如何将参数传递给服务方法 根据提供的参数获取值。

在此先感谢。

回答

0

我得到了我在这里的问题的解决方案是下述细节: -

原因:这背后的主要原因是“不允许的方法。”可以通过设置web.config文件中的配置启用WCF的跟踪功能后捕获。 这里描述的是什么: -

描述:我有一个DateTime类型字段,当我从DB分配值到这个字段时,NULL值被避免分配,所以对于未分配默认值' 01/01/0001 00:00:000“被自动分配到该字段。但是,当这个字段被传递给jSon时,这个日期超出了json Date字段的范围,这导致了实际的错误,并且它引发异常和服务中断。

解决方案:解决方案很简单,只需要将DateTime字段设置为Nullable,以便它将采用NULL而不是将默认超出范围值分配给该字段,这解决了我的问题。感谢WCF追踪设备,它帮助我追踪确切的错误。