2012-05-06 59 views
0

您好我正在使用WCF休息在我的應用與分層架構。我下面的數據流層次結構給出:插入操作與WCF休息失敗每次....

Data Layer -> Linq2Sql 
|| 
Business Layer 
|| 
WCF Rest Service 
|| 
ASPX Pages 

我通過JQuery使用JSON來選擇/刪除和隱藏代碼,以插入/更新,以便我可以通過我的業務層通過.NET對象數據庫的基礎(檢查,如果我有他們的業務邏輯。)使用WCF服務。

例如,我在我的業務層中加密密碼並解密密碼並將其發送到datalayer.Anyways,那不是問題。問題在於WCF服務配置設置。每次我收到以下特殊例外:

  1. 404錯誤的請求。
  2. http://localhost/Service.svc沒有端點收聽可以接受該消息。
  3. 在服務模型客戶端配置部分找不到引用合同'xxx'的默認端點元素。這可能是因爲沒有configuaration文件被發現的應用程序或因爲沒有終點元件匹配這個合同可以在客戶端元素 發現等等....

我想什麼是

  1. 按照Tom Haigh建議的答案。 保護Save_Click(發件人,E) {

    變種用戶=新用戶 { 登錄= login.Value, 密碼= pwd.Value, 實名= realname.Value, AccessRight = accessrights.Value, CustomAccesRight = customaccessrights.Value };

    var remoteAddress = new EndpointAddress("http://localhost:2360/UserService.svc"); 
    
        using (var client = new UserServiceClient(new BasicHttpBinding(), remoteAddress)) 
        { 
         //set timeout 
         client.Endpoint.Binding.SendTimeout = new TimeSpan(0, 0, 0, 10000); 
    
         //call ws method 
         client.Insert(user); 
        } //using 
    

}

  • 我除去使用也嘗試,得到了錯誤400

    保護Save_Click(發件人,E) {

    var user = new用戶 { 登錄= login.Value, 密碼= pwd.Value, RealName = realname.Value, AccessRight = accessrights.Value, CustomAccesRight = customaccessrights。值 };

    var remoteAddress = new EndpointAddress("http://localhost:2360/UserService.svc"); 
    
        var client = new UserServiceClient(new BasicHttpBinding(), remoteAddress); 
    
         //set timeout 
         client.Endpoint.Binding.SendTimeout = new TimeSpan(0, 0, 0, 10000); 
    
         //call ws method 
         client.Insert(user); 
    
  • }服務的

    我的配置文件:

    <system.serviceModel> 
        <services> 
         <service name="EnergyManagementControl.WcfSvc.UserService" behaviorConfiguration="ServiceBehaviour" > 
         <endpoint name="" binding="webHttpBinding" contract="EnergyManagementControl.WcfSvc.IUserService" address="http://localhost:2360/UserService.Svc" behaviorConfiguration="web"></endpoint> 
         </service> 
        </services> 
        <behaviors> 
         <serviceBehaviors> 
         <behavior name="ServiceBehaviour" > 
          <serviceMetadata httpGetEnabled="True"/> 
          <serviceDebug includeExceptionDetailInFaults="true"/> 
         </behavior> 
         </serviceBehaviors> 
         <endpointBehaviors> 
         <behavior name="web"> 
          <webHttp/> 
         </behavior> 
         </endpointBehaviors> 
        </behaviors> 
        </system.serviceModel> 
    

    我的客戶的配置文件

    <system.serviceModel> 
        <client> 
         <endpoint 
         name = "Receptor" 
         address="http://localhost:2360/UserService.Svc" 
         binding = "wsHttpBinding" 
         contract="IUserService" 
        /> 
        </client> 
        </system.serviceModel> 
    

    但似乎沒有任何幫助。我知道它的配置錯誤,請幫助我。另外任何基於我的方案WCF休息簡短的參考將是很大的幫助.....

    請不要WCF創建爲WCF服務應用程序,並且是我的解決方案中的項目與我的Web應用程序。見下面的圖片:enter image description here

    還有我得到錯誤Webdev的服務器上,而不是在IIS或卡西尼

    回答

    1

    我不能說太多WCF使用REST的服務,但您的服務&客戶終端綁定不匹配。 WCF使用綁定來查找匹配的端點。