0

我创建了网络服务:

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 服务,那么我该如何解决问题,如果我想这样做Web 服务在另一台设备上工作我该怎么做?

4

1 回答 1

2

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

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

于 2013-03-19T19:22:56.170 回答