2013-03-19 2 views
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 [email protected] and [email protected]", 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 как веб-ссылку, он работает правильно, пока порт сервера не открыт, если я закрываю порт, страница asp.net не может видеть веб-службу, поэтому как я могу решить проблему, и если Я хочу, чтобы этот веб-сервис работал на другом устройстве, как я могу это сделать?

+0

ASMX - это устаревшая технология и не должна использоваться для новой разработки. WCF следует использовать для всех новых разработок клиентов и серверов веб-сервисов. Один из намеков: Microsoft отстранила [ASMX Forum] (http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/threads) в MSDN. –

ответ

2

Этот порт специально используется для Visual Studio - это либо Cassini, либо IIS Express, и используется только для целей отладки, а не для живых производственных работ. Когда вы будете готовы опубликовать свою услугу, она, скорее всего, войдет в IIS в постоянный постоянный порт (возможно, 80). Как только он там, он всегда будет доступен для вашего клиента для звонка.

После публикации службы IIS вам просто нужно обновить конфигурационный файл, чтобы клиент указал на настоящий постоянный URL-адрес.

+0

Вы хотите опубликовать мою веб-службу на удаленном хосте – user1045265

+0

Да, любой сервер с IIS. Он не должен быть другим сервером, хотя вы можете поместить ваше приложение webservice на тот же сервер, что и ваше веб-приложение, только в другом виртуальном каталоге или на веб-сайте. –

+0

большое спасибо – user1045265

Смежные вопросы