在 .net 中调用 WCF Web 服务函数时出错

本文关键字:服务 函数 出错 Web WCF net 调用 | 更新日期: 2023-09-27 18:37:10

我尝试在Visual Studio 2010中创建演示WCF Web服务;我已经成功添加了服务参考,但客户端仍然有问题。如果我尝试调用服务中的函数,则会出现错误。

这是我的代码:

namespace BankAccount
{   
    [ServiceContract]
    public interface IUserServices
    {
        [OperationContract]
        bool addNewUser(User user);
    }
}
namespace BankAccount
{   
    public class UserServices : IUserServices
    {
        public bool addNewUser(User user)
        {
            SqlConnection conn = null;
            SqlCommand cmd = null;
            try
            {
                String sql = "insert into user(username,password,isActive) values(@username,@password,@isActive)";
                conn = Connection.getConnection();
                conn.Open();
                cmd = new SqlCommand(sql, conn);
                cmd.Parameters.Add(new SqlParameter("@username", user.getUsername()));
                cmd.Parameters.Add(new SqlParameter("@password", user.getPassword()));
                cmd.Parameters.Add(new SqlParameter("@password", user.getActive()));
            }
            catch (SqlException ex)
            {
                return false;
                throw ex;
            }
            finally
            {
                cmd.Dispose();
                conn.Close();
                conn.Dispose();
            }
            return true;
        }
    }
}

用户对象

public class User
    {
        private int Id;
        private String username;
        private String password;
        private Boolean isActive;
        public User()
        {
        }
        public int getId()
        {
            return this.Id;
        }
        public void setId(int id)
        {
            this.Id = id;
        }
        public String getUsername()
        {
            return this.username;
        }
        public void setUsername(String username)
        {
            this.username = username;
        }
        public String getPassword()
        {
            return this.password;
        }
        public void setPassword(String password)
        {
            this.password = password;
        }
        public Boolean getActive()
        {
            return this.isActive;
        }
        public void setActive(Boolean isActive)
        {
            this.isActive = isActive;
        }
    }

客户现场

using System.Web.UI.WebControls;
using BankClient.ServicesForUser;
namespace BankClient.userclient
{
    public partial class usersaving : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            UserServicesClient client = new UserServicesClient();
            //User on client project
            User user = new User();
            user.setUsername(txtusername.Text);
            user.setPassword(txtpassword.Text);
            user.setActive(true);
            bool result = client.addNewUser(user);
        }
    }
}

我在以下行收到错误:

client.addNewUser(user)

错误:

the best overloaded method match for 'Bank.Client.ServicesName.UserServicesClient.addNewUser(Bank.Client.ServicesName.User) has some invalid arguments

有谁知道问题可能是什么?

在 .net 中调用 WCF Web 服务函数时出错

创建服务后更改了用户对象。在客户端上重新生成服务协定。

您似乎使用了错误的用户对象:

        Bank.Client.ServicesName.User user = new Bank.Client.ServicesName.User();
        user.Username = txtusername.Text;
        user.Password = txtpassword.Text;
        user.Active = true;
        bool result = client.addNewUser(user);