Wcf休息服务终点不是fount

时间:2017-12-04 01:13:57

标签: c# angularjs rest wcf

我正在将Wcf Rest Service用于Angular JS Application。我正在尝试根据字符串参数Account_Number检索单个记录。当用户在输入字段中输入帐号我想在角度js应用程序中显示单个记录但是它不显示数据。我面临两个问题。

  1. 我使用方法名称在本地主机中写入url。我得到的结果是Method not allowed。
  2. 当我点击提交按钮以检索特定帐户详细信息时,我在谷歌浏览器中出现以下错误。

    angular.js:12701 POST http://localhost:52098/HalifaxIISService.svc/GetAccountDetails16 404(未找到)

    AccountBalance.js:22 failure loading Employee {data: "<?xml version="1.0" encoding="utf-8"?>
    
  3. 当我点击此链接时,它会在网络标签(预览)中显示未找到结束点和标题部分的错误。

    Request URL:http://localhost:52098/HalifaxIISService.svc/GetAccountDetails16
    Request Method:POST
    Status Code:404 Not Found
    Remote Address:[::1]:52098
    Referrer Policy:no-referrer-when-downgrade
    

    这是我的方法界面。

      [OperationContract]
        [WebInvoke(Method = "POST",
           RequestFormat = WebMessageFormat.Json,
           ResponseFormat = WebMessageFormat.Json,
           UriTemplate = "/GetAccountDetails")]
            bool GetAccountDetails(string Account_Number);
    

    这是实施。

     public bool GetAccountDetails(string Account_Number)
            {
                List<object> customers = new List<object>();
                string sql = "SELECT * FROM Current_Account_Holder_Details WHERE Account_Number = '"+ Account_Number;
                using (SqlConnection conn = new SqlConnection())
                {
                    conn.ConnectionString = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
                    using (SqlCommand cmd = new SqlCommand(sql))
                    {
                        cmd.Parameters.AddWithValue("@Account_Number", Account_Number);
                        cmd.Connection = conn;
                        conn.Open();
                        using (SqlDataReader sdr = cmd.ExecuteReader())
                        {
                            while (sdr.Read())
                            {
    
                                customers.Add(new
                                {
                                    Tittle = sdr["Tittle"],
                                    Account_Holder_First_Name = sdr["Account_Holder_First_Name"],
                                    Account_Holder_Last_Name = sdr["Account_Holder_Last_Name"],
                                    Account_Holder_DOB = sdr["Account_Holder_DOB"],
                                    Account_Holder_House_No = sdr["Account_Holder_House_No"],
                                    Account_Holder_Street_Name = sdr["Account_Holder_Street_Name"],
                                    Account_Holder_Post_Code = sdr["Account_Holder_Post_Code"],
    
                                    Account_Holder_Occupation = sdr["Account_Holder_Occupation"],
                                    Account_Number = sdr["Account_Number"]
    
    
    
                                });
                            }
                        }
                        conn.Close();
                    }
    
                    return true;
                }
    
            }
    

    这是脚本代码。

    var app = angular.module("WebClientModule", [])
        .controller('Web_Client_Controller', ["$scope", 'myService', function ($scope, myService) {
            var Id = $scope.Account_Number;
        $scope.search = function (Id) {
            var promisePostSingle = myService.postbyId(Id);
    
            promisePostSingle.then(function (pl) {
                var res = pl.data;
                $scope.Account_Number = res.Account_Number;
                $scope.Account_Creation_Date = res.Account_Creation_Date;
                $scope.Account_Type = res.Account_Type;
                $scope.Branch_Sort_Code = res.Branch_Sort_Code;
                $scope.Account_Fees = res.Account_Fees;
                $scope.Account_Balance = res.Account_Balance;
                $scope.Over_Draft_Limit = res.Over_Draft_Limit;
    
                //   $scope.IsNewRecord = 0;
            },
                function (errorPl) {
                    console.log('failure loading Employee', errorPl);
                });
        }
        }]);
    
    
    
    
    app.service("myService", function ($http) {
    
        this.postbyId = function (Id) {
            return $http.post("http://localhost:52098/HalifaxIISService.svc/GetAccountDetails" + Id);
        };
       })
    

    这是HTML CODE。

    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html ng-app="WebClientModule">
    <head>
        <meta name="viewport" content="width=device-width" />
    
        <title>AccountBalance</title>
        <script src="~/Scripts/angular.min.js"></script>
    
        <script src="~/RegistrationScript/AccountBalance.js"></script>
    </head>
    <body>
        <div data-ng-controller="Web_Client_Controller">
            Enter Account_Number: <input type="text" ng-model="Id" />
            <input type="button"  value="search" ng-click="search(Id)" />
    
                <table id="tblContainer">
                    <tr>
                        <td>
                            <table style="border: solid 2px Green; padding: 5px;">
                                <tr style="height: 30px; background-color: skyblue; color: maroon;">
                                    <th></th>
                                    <th>Account Number</th>
                                    <th>Account Creation Date</th>
                                    <th>Account Type</th>
                                    <th>Branch Sort Code</th>
                                    <th>Account Fees</th>
                                    <th>Account Balance</th>
                                    <th>Over Draft Limit</th>
    
                                    <th></th>
                                    <th></th>
                                </tr>
                                <tbody data-ng-repeat="user in Users">
                                    <tr>
                                        <td></td>
                                        <td><span>{{user.Account_Number}}</span></td>
                                        <td><span>{{user.Account_Creation_Date}}</span></td>
                                        <td><span>{{user.Account_Type}}</span></td>
                                        <td><span>{{user.Branch_Sort_Code}}</span></td>
    
                                        <td><span>{{user.Account_Fees}}</span></td>
                                        <td><span>{{user.Account_Balance}}</span></td>
                                        <td><span>{{user.Over_Draft_Limit}}</span></td>
                                        <td>
    
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                    </tr>
                    <tr>
                        <td></td>
                    </tr>
                    <tr>
                        <td>
    
                            <div style="color: red;">{{Message}}</div>
    
                        </td>
                    </tr>
                </table>
            </div>
            </body>
    
    
    </html>
    <script src="~/RegistrationScript/AccountBalance.js"></script>
    

    这是我运行应用程序时的屏幕截图。

    click here to see the result

    以下是网络标签上的屏幕截图。 Click here to see the network tab out put

    在网络标签预览部分click here to see the out put

0 个答案:

没有答案