调用Web服务

时间:2013-03-19 19:13:46

标签: web-services asmx

我创建了网络服务:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;
using System.Data;

namespace MemberWebService
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {

        [WebMethod]
        public DataSet GetMemberData(string memberId, string thirdName)
        {
            SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=Healthy;Integrated Security=TRUE");
            SqlDataAdapter da = new SqlDataAdapter();
            DataSet ds = new DataSet();

            da.SelectCommand = new SqlCommand("SELECT * FROM MemberMaster WHERE MemberId=@MemberId and ThirdName=@ThirdName", cn);
            da.SelectCommand.Parameters.Add("@MemberId", SqlDbType.NVarChar).Value = memberId;
            da.SelectCommand.Parameters.Add("@ThirdName", SqlDbType.NVarChar).Value = thirdName;

            ds.Clear();
            da.Fill(ds);
            return ds;
        }
    }
}

当我运行它时,这就是链接:

http://localhost:19722/Service1.asmx

它运作正常。

如果我在asp.net中将其作为Web引用调用它正常工作,直到服务器端口打开,如果我关闭端口,asp.net页面无法看到Web服务 我该如何解决这个问题,如果我想让这个网络服务在另一台设备上工作,我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

该端口专门用于Visual Studio - 它是Cassini或IIS Express,仅用于调试目的,而不用于实时制作工作。当您准备发布服务时,它可能会在常规永久端口(可能是80)中进入IIS。一旦它在那里,它将始终可供您的客户呼叫。

将服务发布到IIS后,您只需更新客户端的配置文件即可指向真正的永久URL。