关于Web服务和客户端程序解决方案

关于Web服务和客户端程序
大家好,我在Web Service中定义了两个方法,用来对SQL Server 2005数据库进行数据的操作。同时有一个客户端应用程序(Windows应用程序),添加了一个Web引用,引用该Web Service,在客户端实现对数据的查询、修改和删除操作。

在同一个机子上运行时,客户端是可以对数据库中的数据进行操作的。但是当我把Web Service运行在主机上,在另一台电脑上运行客户端程序时,会出现“主机积极拒绝”的错误,不能对主机上的数据库进行操作。

请问要怎么弄?
------解决方案--------------------
当你把服务部署到与你的开发环境不同的主机(域名和端口号不同)上去以后,你的客户端怎样知道去访问新的地址?你是怎样做的?
------解决方案--------------------
感觉sp1234说的很对,八成是引用写死了,楼主可能需要动态引用WebService
一、WebService
代码

[WebService(Namespace = "http://localhost/MyWebService")]//根据实际情况替换localhost[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class MyWebService : System.Web.Services.WebService
{
    public ProfessionalWebService() { }

    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }

    [WebMethod(Description = "用户验证")]
    public string userValidate(string strUserName, string strPassword)
    {
        //使用strUserName、strPassword参数验证
        string strResult = userCheck(strUserName, strPassword);
        return strResult;
    }
    
    [WebMethod(Description = "帐号验证:信息匹配返回账号密码正确;信息不匹配返回账号密码错误。")]
    public static string userCheck(string strUserName, string strPassword)
    {
        //代码省略。。。
    }
}



二、Winform客户端

引用
添加引用System.Web.Services:右击引用--点添加引用-在.NET标签下找System.Web.Services-确定。

控件
WebService URL输入框txtWebserviceURL:用于输入WebService URL,就是能在浏览器打开的WebService URL
用户信息验证按钮btnUserCheck:点击执行用户验证
用户账号输入框txtUserName:用户账号输入
用户密码输入框txtPassword:用户密码输入
下一步操作按钮btnNextOperate:下一步操作按钮,默认Enabled属性为false

代码

using System.Net;
using System.Reflection;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Web.Services;
using System.Web.Services.Description;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
private void btnUserCheck_Click(object sender, EventArgs e)
{
    //通过Webservice进行用户信息验证。成功:打开写入窗口的选项可用;失败:打开写入窗口的选项不可用
    try
    {
        // 1. 使用 WebClient 下载 WSDL 信息。
        WebClient web = new WebClient();
        Stream stream = web.OpenRead(txtWebserviceURL.Text + "?WSDL");//txtWebserviceURL中填写WebService URL
        // 2. 创建和格式化 WSDL 文档。
        ServiceDescription description = ServiceDescription.Read(stream);
        // 3. 创建客户端代理代理类。
        ServiceDescriptionImporter importer = new ServiceDescriptionImporter();