# مباحث مرتبط با توسعه وب > توسعه وب (Web Development) >  وب سرویس Web service  از آغاز تا پایان...

## reza_rad

در این تاپیک مروری بر وب سرویسها و طرز کار با آنها انجام می گیرد.
امید است که مورد استفاده ی دوستان قرار گیرد.

پیشاپیش هم از نظرات سازنده ی اساتید گرامی استقبال میشود.
به امید فردایی بهتر...

----------


## reza_rad

یک وب سرویس به معنای ساده نوعی کامپوننت تحت وب است.
این کامپوننت به application هایی که از آن استفاده می کنند این امکان را می دهد که بتوانند از متدهای این وب سرویس استفاده کنند.
بهتر است وب سرویس را با یک مثال توضیح دهیم.
فرض کنید شما می خواهید در web application خود وضعیت آب و هوای مناطق جغرافییای مختلف را داشته باشید. برای پیاده سازی چنین کاری شما دو راه دارید:
1-	خودتان وضعیت اب و هوا را از سایت های مختلف جمع آوری کنید و آنها را در web application خود استفاده کنید.
2-	از یک وب سرویس که آب و هوای مناطق جغرافیایی مختلف را می دهد استفاده کنید.

در واقع این وب سرویس آب و هوا به تنهایی کاری نمی کند. بلکه توابعی دارد که توسط web application  های مختلف صدا زده می شوند. که بعنوان مثال در اینجا وب سرویس وضعیت آب و هوا را برمی گرداند.
البته وب سرویس ها استفاده های بسیار پرکاربردتر و مهمتری دارند مثل کار با دیتابیس و ... که در اینجا فقط یک مثال برای روشن شدن موضوع ذکر شد.

اما مزیت اصلی استفاده از وب سرویسها:
عدم نیاز به کدنویسی مجدد.

شاید بسیاری از دوستانی که OOP کار کارده اند بگویند که اینکار با کلاس هم امکانپذیر است. بله امکانپذیر است اما:
1-	در برنامه نویسی با کلاس شما باید کلاستان را در هر پروژه add کنید ولی در وب سرویس فقط کافیست از متدها استفاده کنید.
2-	در کار با کلاسها شما ممکن است در application های مختلف به روشهای مختلف با کلاسهای متفاوت کار کنید. یعنی به عبارتی کار شما هر بار متفاوت است و این خوانایی را پایین می آورد و همچنین توسعه را مشکل می سازد. اما در استفاده از وب سرویس شما هربار فقط با یک وب سرویس خاص کار می کنید و طبق همان متدهای خاص وب سرویس کار می کنید حالا در هر کجا و هر application که باشید.
3-	وقتی با سرویس کار می کنید یک سری استانداردهایی در استفاده وجود دارد که تمام application ها باید از آن تبعیت کنند و بنابراین reusability  بالا می رود.
4-	 و ....


و اما بعضی واژگان در ارتباط با Web Service :
XML:
Extensible Markup Language

یک زبان markup است که یک فرمتی را برای توصیف داده ها فراهم می کنید. شبیه html است شامل تگ ها و ...

SOAP :
Simple Object Access Protocol

در واقع پروتکل ارتباطی است برای وب سرویس مثل http برای وب و ...

WSDL:
Web Service Description Language

یک xml document  برای web service است که متدها و بعضی خصوصیات دیگر وب سرویس را توضیح می دهد.


در قسمت بعد طرز ایجاد یک وب سرویس توضیح داده خواهد شد.

----------


## iekrang

بسیار عالی.
موضوع فوق العاده بدرد بخوری رو انتخاب کردید.
ما آماده هستیم برای درسهای بعدی.

----------


## reza_rad

لطف دارید. ممنون.
----------

در این قسمت ایجاد وب سرویس با C#‎ code behind  توضیح داده می شود البته با vs 2005 . در vs 2003 نیز بسیار شبیه به 2005 است.

ابتدا به این قسمت بروید : 
File -> new -> website

از پنجره نشان داده شده Asp.net Web Service  را انتخاب کنید.(شکل 1 )



حال در solution explorer  فایلی با نام service.asmx  می بینید که فایل اصلی webservice شما است و در واقع از کلاس service.cs  که در پوشه ی app_code قرار دارد استفاده می کند.

کلاس service.cs  در 2005 یا service.asamx.cs  در 2003 از namespace System.Web.Services.WebService مشتق می شود. و دارای متدهایی با تگهای [WebMethod] است. این متدها متهایی هستند که قابل استفاده توسط web application های دیگر هستند.
حال برای نمونه یکبار webservice  خود را run کنید. یک صفحه با آدرس http://..../service.asmx   در browser   نمایش داده می شود.
شکل 2 یک نمونه وب سرویس است با عنوان SSO و متدهایی که در زیرش نشان داده شده.


چگونگی ایجاد وب متد:
نمونه کد زیر را ببینید:

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


وب متدها همانطوری که اشاره شد با تگ [WebMethod] شروع می شوند. و بسته به نیاز می توانند پارامتر بگیرند و خروجی برگردانند.

برای اطلاعات بیشتر در مورد type پارامترها به آدرس زیر مراجعه کنید :
http://samples.gotdotnet.com/quickst...vicetypes.aspx

حال اگر متد بالا را در وب سرویس خود اجرا کنید می بینید که خروجی Hello World را داخل تگ های xml به شما برمی گرداند.
دقت کنید که این نمایش از وب سرویس صرفا یک نمای ایجاد شده توسط مایکروسافت است و شما نمی توانید به اینصورت از وب سرئیس استفاده کنید. بلکه شما برای استفاده نیاز به استفاده از این متد ها در Web application خود دارید.


اما پارامترهایی که در تگ وب متد بکار می روند:
1-	Description 
همانطوری که از نامش پیداست توضیحات مربوط به هر متد را مشخص می کند که این توضیحات در زیر هر متد در پیش نمایش و همچنین در فایل WSDL  مربوط به وب سرویس قابل مشاهده است.

2-	EnableSession
همانطوریک از نامش پیداست برای مدیریت Session ها بکار می رود.
این متغیر در ابتدا Disable است که شما می توانید آنرا به Enable  تغییر دهید.
البته پیشنهاد می شود که اگر نیاز به استفاده از این امکان ندارید آنرا Disable  بگذارید تا Performance  کاهش نیابد.
3-CacheDuration 
تعداد ثانیه هایی که یک response  کش می شود.در حالت عادی صفر است یعنی response  کش نمی شود.
TransactionOption4- 
مدیریت تراکنش ها. در مورد تراکنش ها دوستان احتمالا اطلاعاتی دارند.
 یک تراکنش مجموعه ای از دستورات است که یا همه با هم اجرا می شود و یا هیچکدام انجام نمی شود. مورد استفاده ی این تراکنش ها بیشتر در کارت های اعتباری و ...
بحث بیشتر در مورد تراکنش ها ما را از حوزه ی وب سرویس خارج می کند.
5-	BufferedResponse
وب سرویس بصورت پیش فرض  Response  را بافر می کند و هرزمان بافر پر شد دوباره خالی می شود و ادامه می دهد. اما گاهی شاید شما در کار خودتان دیتاهای بزرگ و response بزرگی داشته باشید که بافرشدن آن کارایی را پایین بیاورد در چنین شرایطی شما می توانید این گزینه را false کنید .

در بخش بعد درباره ی استفاده از یک وب سرویس در یک web application  توضیح داده خواهد شد.

----------


## reza_rad

در قسمت قبل طریقه ی ایجاد یک وب سرویس را گفتیم. اما گفتیم که وب سرویس به تنهایی نمی تواند توسط کاربر استفاده شود بلکه باید یک web application  آنرا Consume  (استفاده) کند.

حال یک web application  ایجاد کنید.
روی پروژه راست کلیک کنید و گزینه ی Add web reference  را انتخاب کنید. پنجره ای مطابق با شکل 1 ظاهر می شود.


اگر url  وب سرویس را به شما داده باشند آنرا در قسمت url وارد کنید. و اگر که از روی localmachine بخواهید وب سرویس را جستجو کنید داخل همین پنجره  گزینه ای برای آن وجود دارد. پس از انتخاب url  وب سرویس یک نام به آن نسبت دهید این نام در واقع نام کلاسی است با عنوان proxy class  که برای ارتباط با وب سرویس از طریق برنامه ی شما بکار می رود.

حال شما می توانید از متدهای وب سرویس خود در برنامه استفاده کنید.
این کد یک نمونه برای مثال است :

private SSO.SSO sso = new WebLoginControl.SSO.SSO();
UserId_int=sso.get_user_id(UserName_txt.Text,Passw  ord_txt.Text);


طرز کار ارتباط از web application  به web service  را در شکل زیر می بینید:

----------


## reza_rad

پس از یادگیری نحوه ی کار با وب سرویس ها اکنون بهترین زمان برای درک مفهوم پیشرفته و بسیار زیبای SOA   است.



با یک مثال شروع می کنیم:
فرض کنید شما در حال نوشتن یک Web application  برای مدیریت مسایل مالی هستید.
در برنامه نویسی oop  و یا چندلایه شما ابتدا پروژه را به چند لایه برای ارتباط با دیتابیس و business  لایه و ... می شکنید و بعد شروع به کار میکنید.
حال SOA  چه می گوید:
SOA  که مخفف  Service Oriented Architecture  است به شما راهکاری برای متمایز کردن هر یک از این کارها در سرویس ها یا همان وب سرویس های مجزا می دهد. یعنی شما یک وب سرویس برای کار با دیتابیس. یک وب سرویس برای بعنوان مثال کارهای validation  و... دارید و در برنماه ی خود از این وب سرویس ها استفاده می کنید.
در این حالت شما امکان استفاده بارها و بارها از وب سرویس خود را دارید .

در واقع SOA  یک متد تقریبا جدید در توسعه نرم افزار است. و گفته شده تا سال 2008 بیش از 80 درصد پروژه های نرم افزاری از این متد استفاده خواهند کرد.

اما چرا SOA :
-	فهمیدن بهتر سیستم
-	سازماندهی بهتر – تمرکز بیشتر روی توسعه ها
-	یکپارچه سازی ساده تر بین سیستم ها
-	بهتر شدن محدوده ی تست ها
-	Reusability  بیشتر و بالاتر
-	افزایش قابلیت اعتماد
-	توسعه و develop  فقط روی business plan متمرکز می شود.
-	و...

شکل زیر یک SOA    را نشان می دهد.



برای آشنایی بیشتر با SOA :
http://msdn.microsoft.com/architectu...tml/aj1soa.asp

----------


## papa_fal

سلام
عالیه آقای راد.
خیلی خوبه همین طور به آموزش ادامه بدید.
با تشکر از شما
موفق باشید.

----------


## PrinceDotNet

خیلی ممنون .

----------


## reza_rad

با عرض معذرت...
من یه مدت سرم خیلی شلوغ بود و البته هنوز هم شلوغه...
بخاطر همین نمی تونم با سرعت قبلی ادامه بدم. ولی هر زمانیکه وقت بشه ادامه میدم .

همانطوریکه گفته شد SOAP ساختاری را برای ارسال داده ها و پیام ها بین وب سرویس و Web application  ایجاد می کند.
اما یک مشکل اینجا وجود دارد که با یک مثال توضیح داده شده است:
شما ممکن است یک کلمه انگلیسی را بشنوید که در زبان کشور USA  یک معنا بدهد و در زبان کشور UK  معنای دیگر.

دقیقا همین مشکل ممکن است در هنگام استفاده از وب سرویس اتفاق بیافتد. در واقع شما باید type  و شکل   message  های ایجاد شده توسط وب متد ها را مشخص کنید تا استفاده کننده بداند که چطور باید آنها را معنا کند. این امکان توسط Schema  فراهم می شود.
به دو راه می توانید برای وب سرویس خود schema  ایجاد کنید:
- بصورت جدا در یک text editor  (explicit)
- بصورت استفاده از تگ ها داخل وب سرویس (implicit)

در اینجا توضیح مربوط به Element  ها و attribute  ها را ارائه نمی کنم چون مربوط به بحث Xml  می شود.دوستان برای مطالعه در این زمینه به مقالت xml مراجعه کنند.
اما این یک کلاس ایجاد شده توسط تگ ها بصورت implicit  است:

[XmlRoot(“ServiceRequest”, Namespace=
“urn-SampleSolution-Data”, IsNullable=false)]
[XmlType(“ServiceRequest”, Namespace=
“urn-SampleSolution-Data”)]
public class ServiceRequest 
{
    #region Fields
    private string ticketNumber;
    private string accountNumber;
    private string accountName;
    private string serviceNotes;
    private string priority;
    private string contactMethod;
    private System.DateTime requestOpened;
    private int hrEmployeeId;
    private bool hrEmployeeIdSpecified;
    private string assignTo;
    private System.DateTime requestClosed;
    private bool requestClosedSpecified;
    private string resolutionNotes;
    #endregion
 
    #region Serializable Properties
    [XmlElement]
    public string TicketNumber
    {
        get { return this.ticketNumber; }
        set { this.ticketNumber = value; }
    }
    [XmlElement]
    public string AccountNumber        
    {
        get { return this.accountNumber; }
        set { this.accountNumber = value; }
    }
 
    [XmlElement]
    public string AccountName        
    {
        get { return this.accountName; }
        set { this.accountName = value; }
    }
 
    [XmlElement]
    public string ServiceNotes        
    {
        get { return this.serviceNotes; }
        set { this.serviceNotes = value; }
    }
 
    [XmlElement]
    public string Priority        
    {
        get { return this.priority; }
        set { this.priority = value; }
    }
 
    [XmlElement]
    public string ContactMethod        
    {
        get { return this.contactMethod; }
        set { this.contactMethod = value; }
    }
 
    [XmlElement]
    public System.DateTime RequestOpened        
    {
        get { return this.requestOpened; }
        set { this.requestOpened = value; }
    }
 
    [XmlElement]
    public int HREmployeeId        
    {
        get { return this.hrEmployeeId; }
        set 
        {
            this.hrEmployeeId = value; 
            this.HREmployeeIdSpecified = true;
        }
    }
 
    [XmlIgnore()]
    public bool HREmployeeIdSpecified        
    {
        get { return this.hrEmployeeIdSpecified; }
        set { this.hrEmployeeIdSpecified = value; }
    }
 
    [XmlElement]
    public string AssignTo        
    {
        get { return this.assignTo; }
        set { this.assignTo = value; }
    }
 
    [XmlElement]
    public System.DateTime RequestClosed        
    {
        get { return this.requestClosed; }
        set 
        { 
            this.requestClosed = value; 
            this.RequestClosedSpecified = true; 
        }
    }
 
    [XmlIgnore()]
    public bool RequestClosedSpecified        
    {
        get { return this.requestClosedSpecified; }
        set { this.requestClosedSpecified = value; }
    }
 
    [XmlElement]
    public string ResolutionNotes        
    {
        get { return this.resolutionNotes; }
        set { this.resolutionNotes = value; }
    }
    #endregion
}


دوستان توجه کنند که تگ هایی که برای اینکار استفاده می شود در زیر آورده شده است:

[XmlElement]
[XmlElement(ElementName="Album")] تعریف element
[ return: XmlElement("SubmissionReceipt")]  بازگشتی به شکل element

[XmlAttribute]
[XmlAttribute(AttributeName="noOfTracks", DataType="unsignedByte")]
    [XmlText]
...


دوستان توجه کنند که تگ های زیادی در این رابطه وجود دارد که اینجا مجال بررسی همه ی آنها نیست.

----------


## reza_rad

PDF مطالب گفته شده(دوباره)

----------


## reza_rad

تا اینجا راههایی که ما برای فراخوانی وب سرویس بررسی کردیم به اینصورت بود که شما حتما باید مشخصات وب سرویس ها رو هنگام تولید کد برنامه داشته باشید تا بتونید Proxy Class رو براشون ایجاد کنید یعنی Add web reference  اش کنید و بعدا ازش استفاده کنید.

اما یک خصوصیت خیلی مهم وب سرویس ها اینه که تعدادشون هر روز زیاد تر میشه و وب سرویس های بهتر و بیشتر بوجود میاد.
حالا اگر شما بخواهید هر بار که وب سرویس تازه ای میاد  داخل کد برنامه تغییرات بدین خیلی کار طاقت فرسایی میشه.

یک راه حل خوب برای اینکار استفاده از وب سرویس ها بطور دینامیک است.
یعنی شما هنگام تولید کد proxy class رو ایجاد نمی کنید.بلکه اینکار رو RunTime انجام می دید.

من یک مقاله در این خصوص پیدا کردم که بسیار عالی هست . 
در این مقاله از خصوصیت namespace  Codedom و ... برای پیدا کردن متدها ی وب سرویس ها بطور دینامیک استفاده شده و...

توصیه می کنم حتما مطالعه کنید.


http://msdn2.microsoft.com/en-us/lib...35(vs.80).aspx

----------


## سید مسعود موحد

آقا خیلی عالی بود

----------


## nasrin_fallah

ممنون از مطالب مفیدی که نوشتین

----------


## Asad.Safari

با تشکر آقای راد !

ای کاش یه مثال در مورد تبادل اطلاعات حجیم بین کلاینت و سرور میزدید !

مثلا فرستادن کل دیتابیس به کلاینت و ویرایش و برگشت اون به وب سرویس !

با تشکر

----------


## reza_rad

خواهش می کنم:)




> ای کاش یه مثال در مورد تبادل اطلاعات حجیم بین کلاینت و سرور میزدید !
> 
> مثلا فرستادن کل دیتابیس به کلاینت و ویرایش و برگشت اون به وب سرویس !


چنین کاری چه کاربردی می تونه داشته باشه؟
بیشتر توضیح میدین چیکار میخوای بکنید؟
ضمن اینکه از نظر امنیتی توصیه شده کار با دیتابیس توی وب سرویس حداقل بشه(منظور کار روی نتیجه وب سرویس هست نه کارهای داخلی)


ضمنا خارج از بحث این پست: فکر کنم تا یه مدت دیگه مطالبی در مورد Web Service Security  اینجا بذارم. متاسفانه الان وقتش نیست ولی امیدوارم تا یک ماه دیگه وقت بشه.

----------


## Asad.Safari

فرض کنید ما چند تا نماینده تو شهرهای مختلف داریم ,  ما یه دیتابیس انبار داریم 
که کلی توش جدول وجود داره !
حالا ما میخاییم هر روز این نماینده ما دیتابیس براشون لود بشه و بعد هر تغییرات میخان توش بدن(اعم از فروش و خرید ) و بعد شب دیتابیس رو واسه ما بفرستن که اطلاعات چند نمایند به صورت یکپارچه یکجا جمع بشه .


به نظر شما تو این مورد Remoting جواب میده یا web service ??


با تشکر

----------


## reza_rad

> به نظر شما تو این مورد Remoting جواب میده یا web service ??


چرا Replication  کار نمی کنید؟
توی چنین مواردی امکانات خود دیتابیس ها مثل همین replication  بهتر جواب میده تا امکانات developer  ای مثل وب سرویس یا رموتینگ. 
ما توی شرکت خودمون چنین نمونه ای دارم و با همین replication  کار می کنیم.

----------


## Asad.Safari

> چرا Replication  کار نمی کنید؟


با سلام و ممنون به خاطر جوابتون !

من اصلا با این Replication آشنایی ندارم ؟؟

یه مقاله ای یا یه نمونه کاری یا یه چیزی که بتونم با این Replication آشنا بشم رو لطف کنید ممنون میشم !

با تشکر

----------


## reza_rad

> من اصلا با این Replication آشنایی ندارم ؟؟
> 
> یه مقاله ای یا یه نمونه کاری یا یه چیزی که بتونم با این Replication آشنا بشم رو لطف کنید ممنون میشم !


سلام
خواهش می کنم.

از جستجوی این سایت استفاده کنید
کلمه کلیدی : replication  
تالار جستجو: SqlServer 

این مقالات هم خوب هستند:

http://msdn2.microsoft.com/en-us/library/ms151198.aspx
http://www.windowsitlibrary.com/Content/77/11/toc.html

موفق باشید.

----------


## RealDream

خیلی عالیه اما برای من یه سوال هست 
من می تونم نرم افزار تحت ویندوزم رو با این کامپوننت ارتباط بدم یعنی از یه وب سرویس اطلاعتی رو بگیرم تو نرم افزارم آنالیز کنم و دوباره به همین وب سرویس پس بدم . مثلا سیستم های ارزش افزوده اس ام اس

----------


## reza_rad

> من می تونم نرم افزار تحت ویندوزم رو با این کامپوننت ارتباط بدم یعنی از یه وب سرویس اطلاعتی رو بگیرم تو نرم افزارم آنالیز کنم و دوباره به همین وب سرویس پس بدم . مثلا سیستم های ارزش افزوده اس ام اس


البته که میشه
وب سرویسی که به شما اطلاعات میده کاری به این نداره که شما وب کار می کنی یا ویندوز. شما اگه روی solution های ویندوزی خودتون تست کنید می بینید که امکان add web reference رو بهتون میده.

----------


## iekrang

> ... تا بتونید Proxy Class رو براشون ایجاد کنید یعنی Add web reference اش کنید و ...


راه های ایجاد Proxy Class به جز Add web reference چی هست؟ فکر میکنم یکیش استفاده از WSDL.exe باشه.میشه واسم یه توضیح بدید.
اینجا یه Web Service Proxy Generator هست که جالبه ولی من نمیدونم از کلاسی که از این طریق ساخته میشه چطور میشه استفاده کرد.
ممنون میشم اگر در این مورد توضیحی واسم بدید چون من یکم با این قضیه مشکل پیدا کردم و ظاهراً راه حلش اینه که برای ایجاد Proxy Class از WSDL.exe استفاده کنم.

----------


## reza_rad

بیشتر توضیح بدید که اینکار رو برای چی می خواهید انجام بدید؟
توی پست های قبلی(پست شماره 11) فراخوانی داینامیک وب سرویس رو توضیح دادم و یه لینک دادم که دقیقا همین کار رو می کنه یعنی میره و مشخصات وب سرویس رو می خونه با استفاده از reflection  و بعد پراکسی کلاس رو ایجاد می کنه....
ولی پراکسی کلاس توی حالت runtime ایجاد میشه و برای استفاده شما که می خوای محیط دیباگ داشته باشی فکر کنم کاربرد نداره.

در ضمن اگه وب سرویسی هست که خودت نوشتی پس می تونی روی لوکال دیباگش کنی و بعد بذاریش روی سرور دیگه.

بیشتر در مورد مشکلت توضیح بده شاید راه بهتری باشه.

----------


## iekrang

> در ضمن اگه وب سرویسی هست که خودت نوشتی پس می تونی روی لوکال دیباگش کنی و بعد بذاریش روی سرور دیگه.


ممنون از توجهتون.
قضیه این طوری که من برنامه ای نوشتم برای Pocket Pc.و نمیتونم وب سرویسم رو روی Win Ce بگذارم .روی Desktop pc گذاشتم و موقع Add refrence ،آی پی سیستمم رو میدم توی برنامه واسه همینه که لوکال اجرا نمیتونم اجراش کنم.
این Error رو میگیره:Could not establish connection to network.

----------


## reza_rad

خواهش می کنم:)



> این Error رو میگیره:Could not establish connection to network.


از ارور شما بیشتر اینطور به نظر میرسه که مشکل از ارتباطات شبکه ای باشه. فایروال روی سیستمتون غیرفعال هست؟  
حالا من با pocket pc  کار نکردم ولی باید راهی باشه برای اینکه چک کنید و ببینید که اصلا می تونه کامپیوتر شما رو توی شبکه ببینه یا نه؟

----------


## iekrang

> حالا من با pocket pc کار نکردم ولی باید راهی باشه برای اینکه چک کنید و ببینید که اصلا می تونه کامپیوتر شما رو توی شبکه ببینه یا نه؟


مشکلی از لحاظ شبکه نداره.
(به هر حال ممنون.مقاله هاتون واسه من که خیلی پربار بودن)

----------


## reza_rad

> مشکلی از لحاظ شبکه نداره.
> (به هر حال ممنون.مقاله هاتون واسه من که خیلی پربار بودن)


خواهش می کنم.
متاسفم که توی این مورد خاص نمی تونم کمکی کنم.
به هر حال موفق باشید.

----------


## mhn143

ممنون از مقاله خوبتون من یه مشکلی که دارم شناسایی کاربرایی که به web service وصل می شن دارم می شه یه کمکی کنید

----------


## mhn143

خودم پس از یک روز بالا پایین رفتن از این دهکده نچندان کوچک :تشویق:   پیدا کردم شما اگه نخواید که هرکسی به web service شما دسترسی داشته باشه باید از Windows authentication استفاده کنید از Forms authentication, نمیشه استفاده کرد واینم یه مثال ساده:



> Dim S As WebReference.Service = New WebReference.Service()
>         S.Credentials = New NetworkCredential("administrator", "mhn")
>         Dim mhn As String = S.max_id()

----------


## Folaani

فرق وب سرویس با یه چیزی مثل اکستنشن در پی اچ پی چیه؟ یا مزیتش نسبت به اینکلود و اینها...
بنظرم مفهومشون خیلی نزدیک بهم هست. شاید یه حالت ساده و بهینه و خودکار شده تری هست؟
ببخشید مثالهاتون هم با دات نت بود ظاهرا، بنده زیاد حوصله نکردم بخونم.

----------


## reza_rad

> فرق وب سرویس با یه چیزی مثل اکستنشن در پی اچ پی چیه؟ یا مزیتش نسبت به اینکلود و اینها...
> بنظرم مفهومشون خیلی نزدیک بهم هست. شاید یه حالت ساده و بهینه و خودکار شده تری هست؟
> ببخشید مثالهاتون هم با دات نت بود ظاهرا، بنده زیاد حوصله نکردم بخونم.


شاید به بیان ساده بشه اینطوری گفت:
هر دو اینها به شما سرویس هایی می دهند پس از این نظر با هم مشابه اند.
اما در مورد وب سرویس مزیت مهمی که وجود داره *Cross Platform*  بودنشه که شما رو بی نیاز از Platform  میکنه و سرویس هاش توی هر محیطی در دسترس خواهد بود. این چیزیه که extension  ها php  به شما نمیده .

----------


## V_Shirvani

سلام
من یک مشکل در ارتباط با ارسال اطلاعات به وب سرویس دارم
من برای ارسال اطلاعات یک بانک اطلاعاتی که بر روی یک برنامه تحت ویندوز ساخته میشه به یک نرم افزار تحت وب (بانک اطلاعات بر روی سرور) از یک وب سرویس استفاده کردم.

وب سرویس من درست کار می کنه ، چون که ارسال و دریافت اطلاعات انجام میشه (چون به صورت لوکال تست کردم و در دیباگ مود ، اطلاعات قابل مشاهده بودند ولی در همان دیبگ مود هم در بانک سرور ثبت نمی شد) ولی یک مشکل داره و هنگام ثبت اطلاعات ارسالی بر روی بانک سرور این خطا رو میده : 
The String or Binary data would be truncated 
من برای اینکه از درست بودن کدم اطمینان پیدا کنم ، اومدم و وب سرویس رو موقتا حذف کردم و توابع Insert اون را داخل پروژه ویندوزی کپی کردم و پروژه کار کرد .

لازمه بگم که مشکل من از اونجا شروع میشه که من یک DataSet رو میخوام با حجم زیادی data ارسال کنم . و اونطوری که خواندم این توانایی برای اولین باریه که توسط Net2. ارائه میشه ، اگه ممکنه من را راهنمائی کنید .

----------


## reza_rad

آیا دیتاست به وب سرویس ارسال میشه درست؟
آیا کد وب سرویس رو trace  کردید؟

در کل ارور شما به این دلیله:

This error message appears when you try to insert a string with more characters than the column can maximal accommodate.

http://www.sql-server-performance.co...ncated_p1.aspx

اما بهتره به نظر trace کنید و مشکل رو دقیقا پیدا کنید.

----------


## V_Shirvani

با تشکر از شما 
من هم داخل اینترنت جستجو کردم و به همین جواب رسیدم ولی فکر کنم شما متن سوال قبلی من را کامل نخواندید .
من برای اینکه از درست بودن کدم اطمینان پیدا کنم ، اومدم و وب سرویس رو موقتا حذف کردم و توابع Insert داخل اون را در داخل پروژه ویندوزی کپی کردم و پروژه کار کرد (Insert انجام شد) .
ضمنا من خط به خط WebService  را trace کردم و دقیقا تمام فیلدهای جدول را چک کردم . 
لازمه که بگم هیچ کدام از آنها مشکل نداشت و این خطا دقیقا زمانی که دستور Insert اجرا می شود ، بروز می کند .

----------


## reza_rad

چرا من متن سوال شما رو خوندم
گفتم Trace  کنید تا دقیقا همون اسکریپت insert  ای که توی وب سرویستون ایجاد میشه رو بردارید ببرید و توی SQLServer  تست کنید مثلا تویquery analyzer  ببینید آیا مشکلی نداره؟

----------


## M.Dalvand

> یک وب سرویس به معنای ساده نوعی کامپوننت تحت وب است.
> این کامپوننت به application هایی که از آن استفاده می کنند این امکان را می دهد که بتوانند از متدهای این وب سرویس استفاده کنند.
> بهتر است وب سرویس را با یک مثال توضیح دهیم.
> فرض کنید شما می خواهید در web application خود وضعیت آب و هوای مناطق جغرافییای مختلف را داشته باشید. برای پیاده سازی چنین کاری شما دو راه دارید:
> 1-	خودتان وضعیت اب و هوا را از سایت های مختلف جمع آوری کنید و آنها را در web application خود استفاده کنید.
> 2-	از یک وب سرویس که آب و هوای مناطق جغرافیایی مختلف را می دهد استفاده کنید.
> 
> در واقع این وب سرویس آب و هوا به تنهایی کاری نمی کند. بلکه توابعی دارد که توسط web application  های مختلف صدا زده می شوند. که بعنوان مثال در اینجا وب سرویس وضعیت آب و هوا را برمی گرداند.
> البته وب سرویس ها استفاده های بسیار پرکاربردتر و مهمتری دارند مثل کار با دیتابیس و ... که در اینجا فقط یک مثال برای روشن شدن موضوع ذکر شد.
> ...


 :متفکر: در مورد uddi هم می شه بگین چطوری استفاده می شه و چطوری  می تونیم webservice هامون را توسطش registeryکنیم

----------


## babakj

من می خوام حدود 5000 رکورد رو از یک table  که شامل 12 فیلد است از طریق webservice  به یک نرم افزار تحت ویندوز انتقال بدم آیا استفاده از وب سرویس بهترین گزینه است ؟
سرعت انتقالش خوبه یا اینکه اگر این اطلاعات رو به صورت فایل Text  در بیارم و بعد download  بشه و سپس در بانک insert بشه بهتره ؟ کدوم روش رو توصیه می کنید ؟

----------


## YAprogress

پروژه كارشناسي من در مورد وب سرويس ميباشد. لطفا منابع لازم را براي يادگيري آن را لطف كنيد.

----------


## anonymouse

سلام
پروژ کارشناسی من در مورد SOA است و به مطالبی در مورد ws_security نیاز دارم
اگر ممکنه در این مورد توضیح بدین و منابعی رو معرفی کنید
ممنون

----------


## mehdi601f

چطور میشه صفحه تست رو از وب سرویس غیرفعال کرد ؟
 و چطور میشه 

The following operations are supported. For a formal definition, please review the *Service Description*. 

رو حذف یا غیرفعال کرد ؟

----------


## niloofar norouzi

با سلام
wsdl.exe چیست و چگونه می شود از آن برای استفاده از وب سرویسها ، بهره گرفت؟

از پسوند این فایل اینگونه به نظر می رسه که باید یک فایل اجرایی باشد. این فایل کجاست و چگونه می شود از ان استفاده کرد؟
ممنون

----------


## niloofar norouzi

با سلام


مقاله ای میخواستم راجع به کاربرد سرویس های وب در تجارت الکترونیک

----------


## sahele_sheni

http://www.mambolearn.com/forum/inde...c,17476.0.html

----------


## delphi77

دوستان کاش کسی هم به این تاپیک بره و سوال آخر من را جواب بده!
https://barnamenevis.org/showthread.php?t=134374

----------


## xamfia

در ادامه بحث مقدماتی که درباره سرویس های وب داشتم در این پست به سراغ WSDL می رویم .
یکی از سوالاتی که در پست قبلی مطرح کردم این بود که چگونه می توان برای استفاده از یک سرویس از چگونگی کنش و واکنش های آن آگاهی پیدا کرد؟؟
به عبارتی دیگر زمانی که شما می خواهید متد خاصی را فراخوانی کنید باید بدانید چه پارامترهایی از چه نوعی دریافت می کند و همچنین مقدار برگشتی اش چه می باشد؟ و یا شاید اصلا بخواهید توضیحاتی در مورد اینکه یک متد چکار خاصی را برای شما انجام میدهد را بدانید و ... راه چاره WSDL است.
WSDL(web service description language) همان طور که از نامش پیداست زبان و استانداردی برای تشریح یک سرویس است.
@ این زبان با فرمت XML است و برای تشریح یک وب سرویس که چگونه فراخوانی می شود و چه پارامترهایی می گیرد، استفاده می شود. WSDL از پنج قسمت به شرح زیر تشکیل شده است : 
1) بخش <types> : در این بخش تمام گونه های داده ای که توسط سرویس مورد استفاده قرار می گیرد، تعریف می شود.
2) بخش <message>: پارامترهای ورودی و خروجی سرویس در این بخش تعریف می شوند.
3) بخش<portType>: روشهای دسترسی به پیغامهایی که در بخش پیش تعریف شده اند در این بخش قرار می گیرند. [این تگ از مهترین اجزا WSDL میباشد. در واقع این تگ نقش دروازه ورود به یک سرویس را بازی میکند.همان طور که شاید تا به حال حدس زده باشید در سرویس ها ما چیزی شبیه تابع Main در برنامه های قدیمی نداریم.در واقع این تگ برای ما تقریبا همان نقش را بازی میکند، یعنی به ما میگوید که از کجا شروع کنیم] 
4) بخش<bindings>: پروتکلهایی که مورد استفاده قرار می گیرد (HTTP GET, HTTP POST, SOAP) در این بخش قرار می گیرد.
5) بخش<service> : تمام بخشهای ذکر شده تا اینجا، در این قسمت به هم متصل می شوند.

( از@ تا اینجا از نوشته های مجید اطلس باف نیز بهره گرفته ام- قابل توجه کسانی که اخلاق علمی را رعایت نمی کنند!!) 

ترجیح میدهم به جای تعاریف قلمبه سلمبه(!) که معمولا ما برنامه نویسان از آن متنفریم ، برویم به سراغ یک مثال سادهاز سایت آموزشی W3C در آدرس http://www.w3schools.com/webservices/tempconvert.asmx


در این مثال ما یک کلاس با کد زیر داریم :<%@ WebService Language="VBScript" Class="TempConvert" %>
Imports System
Imports System.Web.Services
Public Class TempConvert :Inherits WebService
<WebMethod()> Public Function FahrenheitToCelsius
(ByVal Fahrenheit As String) As String
dim fahr
fahr=trim(replace(Fahrenheit,",","."))
if fahr="" or IsNumeric(fahr)=false then return "Error"
return ((((fahr) - 32) / 9) * 5) 
end function
<WebMethod()> Public Function CelsiusToFahrenheit
(ByVal Celsius As String) As String
dim cel
cel=trim(replace(Celsius,",","."))
if cel="" or IsNumeric(cel)=false then return "Error"
return ((((cel) * 9) / 5) + 32)
end function
end classفعلا نیازی به تفسیر کد بالا نیست پس خودتان را زیاد درگیر درک آن نکنید (در پست های آینده به تفسیر در مورد کد نویسی webservice بحث خواهم کرد) فقط در همین حد بدانید که این کلاس دو متد دارد برای تبدیل فارنهایت به سلسیوس و بلعکس.
در آدرس زیر می توانید این دو تابع را تست کنید و لذت ببرید!
http://www.w3schools.com/webservices/tempconvert.asmx
حال به سراغ بحث خودمان پیرامون WSDL برمیگردیم ، اگر شما سری به آدرس زیر بزنید میتوانید WSDL مربوط به کلاس بالا را مشاهده کنید:
http://www.w3schools.com/webservices/tempconvert.asmx?wsdl
جالب بود نه؟!!<s:element name="*FahrenheitToCelsius*">
<s:complexType>
<s:sequence>
@
<s:element minOccurs="*0*" maxOccurs="*1*" name="*Fahrenheit*" type="*s:string*" /> 
</s:sequence>
</s:complexType>
</s:element>
@@
<s:element name="*FahrenheitToCelsiusResponse*">
<s:complexType>
<s:sequence>
<s:element minOccurs="*0*" maxOccurs="*1*" name="*FahrenheitToCelsiusResult*" type="*s:string*" /> 
</s:sequence>
</s:complexType>
</s:element> 

احتمالا در همین برخورد اول شما خودتان به رابطه های بسیاری برخوردید و شاید متوجه شده اید که WSDL چگونه می تواند با تگ های خود ویژگی های یک متد را ار قبیل تعداد و نوع پارامتر های ورودی ،نوع برگشتی تابع، توضیحات اضافی هر تابع و ... را شرح دهد. 
در خط @ به بعد شما پارامتر ورودی تابع را ملاحظه میفرمائید که نامش *Fahrenheit*است و نوع آن نیز String می باشد.
در خط @@ به بعد WSDL شرح مقدار برگشتی متد *FahrenheitToCelsius*را به ما می دهد که ناگفته پیداست که مقدار برگشتی متد(تابع) از نوع String می باشد. 


در شکل بالا می توانید نمای کلی فرایند یک WSDL را ببینید و با چگونگی عملکرد کلی آشناتر شوید.
برای اطلاعات بیشتر میتوانید ار لینک زیر استفاده کنید 

http://www.w3.org/TR/wsdl20 


با تشکر 

میثم نوایی 


http://www.xamfia.com/
www.persianwebservice.com

----------


## xamfia

بالاخره مقاله وب سرویس آماده شد.
در این مقاله سرویس وب را با Jbuilder می سازیم
در Tomcat مستقر میکنیم
و با یک برنامه کاربر فراخوانی میکنیم 
همچنین نحوه اجرای Tomcat و ActiveBPEL را نیز آموزش داده ام.
در ضمن برای کسانی هم که تازه شروع کرده اند و چیزی در مورد سرویس های وب و معماری سرویس گرا نمی دانند توضیحات مقدماتی و کافی داده ام.

*تقدیم به جاواکارهای اخمو*


http://rs674.rapidshare.com/files/21...WebService.pdf
www.xamfia.com/files/webservice.pdf
در ضمن بزودی فایل های برنامه را نیز منتشر میکنم.
همچنین اگر وقت کنم سعی میکنم بخشی را نیز برای کاربران NetBeans منتشر کنم.

سپاسگزارم*میثم نوایی*

*Meysam.Navaei@gmail.com*
*www.xamfia.com*
*www.persianwebservice.com*

----------


## vahidmir

سلام
باتشکر از مطالبی که فرستادین
یه سوال داشتم.من یه وب سرویس دارم که یه dll بهش اضافه کردم.dll شامل تعداد زیادی متد هست  حالا می خوام از تو یه برنامه متد های dll رو با استفاده از وب سرویس صدا بزنم.غیر از اینکه برای هر متد dll یه متد تو وب سرویس بنویسم(آخه تعداد متد ها زیاده) راه دیگه ای هم هست؟

----------


## ariana4

سلام من یک مقاله کامل در مورد وب سرویسها و کاربرد آنها همینطور امنیت و ورک فلوی آنها می خواهم فایل word باشه ممنون میشم فوری است

----------


## samaneh_md

mofid bud mamnun

----------


## pmn.asd

سلام
از مطالبتون خیلی متشکرم
لطفا در مورد Publish یک وب سرویس دات نت در IIS و با داشتن یک IP static توضیح بدین

قربونت :)

----------


## Khalil morradi

دوستان سلام 
من یک مشکلی با وب سرویس دارم لطفا کمکم کنید البته نمیدونم این تاپیک هنوز جوابی داره یا نه
من یک وب سرویس دارم که حجم زیادی از دیتا رو در قالب یک استرینگ برمیگردونه و قاعدتا وقت زیادی هم میگیره هنگام طراحی و تست مشکلی نداره ولی وقتی پابلیش میکنم کار نمیکنه البته این وب سرویس چند تا فانکشن داره که بقیه کوتاه تره کار میکنه من توی web.config مفدار <httpRuntimeexecutionTimeout="1200"/> رو هم زیاد کردم اما فایده ای نداشت نمیدونم چرا اینجوریه من فکر میکنم از تایم اوتش باشه گرچه خطای تایم اوت نمیگیره و Internet Explorer cannot display the webpage میده  حالا باید کجا تغییرش بدم (البته میخوام ترجیحا طرف سرور باشه) لطفا کمکم کنید

----------


## mehdi.mousavi

> دوستان سلام 
> من یک مشکلی با وب سرویس دارم لطفا کمکم کنید البته نمیدونم این تاپیک هنوز جوابی داره یا نه
> من یک وب سرویس دارم که حجم زیادی از دیتا رو در قالب یک استرینگ برمیگردونه و قاعدتا وقت زیادی هم میگیره هنگام طراحی و تست مشکلی نداره ولی وقتی پابلیش میکنم کار نمیکنه البته این وب سرویس چند تا فانکشن داره که بقیه کوتاه تره کار میکنه من توی web.config مفدار <httpRuntimeexecutionTimeout="1200"/> رو هم زیاد کردم اما فایده ای نداشت نمیدونم چرا اینجوریه من فکر میکنم از تایم اوتش باشه گرچه خطای تایم اوت نمیگیره و Internet Explorer cannot display the webpage میده  حالا باید کجا تغییرش بدم (البته میخوام ترجیحا طرف سرور باشه) لطفا کمکم کنید



سلام.
شاید Timeout از سمت Client Proxy رخ میده. در واقع میخوام بگم Client برای مدت مشخصی منتظر دریافت پاسخ میمونه و اگر در اون مدت پاسخی دریافت نکرد، ارتباط رو قطع میکنه (اگرچه سرور تو اون لحظه داره هنوز کار خودش رو انجام میده).

توی .NET کلاسهای Proxy ای که برای Web Service ایجاد میشن یه Property ی Timeout دارن که با Set کردنش میشه این مشکل رو رفع کرد (من نمیدونم شما از چه تکنولوژی ای استفاده میکنید، اما از روی httpRuntime ای که بالا ذکر کردید حدس میزنم که .NET باشه). اگر دقیقتر بخوام بگم، کلاس WebClientProtocol که Client Proxy شما ازش Derive میشه، حاوی اون Timeout Property هستش. اگر درست بخاطرم مونده باشه، مقدار پیش فرضش 100,000 میلی ثانیه هستش.

موفق باشید.

----------


## Khalil morradi

با تشکر از جنابعالی
بله من از دات نت 2 برای برنامه نویسی استفاده کرده ام و حالا میخوام از این وب سرویس برای صفحات asp کلاسیک استفاده کنم و الان موقعی که از آدرس http://.../service.asmx داخل بروزر وارد میکنم و دکمه Invoke رو برای تست میزنم یه کمی معطل میکنه و چیزی رو بر نمی گردونه در صورتیکه کلیه مشخصات wsdl رو نمایش میده و درست هم هست البته من تقریبا مطمئن هستم که مشکل از زمان تایم اوت اون هست اما سئوال اینه که آیا میشه تغییری طرف سرور داد که مشکل حل بشه یا نه واگر جواب منفی هست طرف کلاینت برای asp کلاسیک باید چکار کنم تا این زمان تایم اوت رو تنظیم کنم آیا باید همون فایل dll حاوی کلاس httpsoapclient رو با wsdl بسازم و اگر بسازم چطوری توی asp ازش استفاده کنم؟؟

----------


## mehdi.mousavi

سلام.
قاعدتا این مساله به سرور برنمیگرده، چون مشکل با executionTimeout رفع نشده. در مورد سوال دوم هم، در حال حاضر به چه شکلی از اون Web Service در Classic ASP ی خودتون استفاده می کنید؟ SOAP Client، XMLHttp Rquest یا ..؟ لطفا قدری توضیح بدید...

موفق باشید.

----------


## Khalil morradi

> سلام.
> قاعدتا این مساله به سرور برنمیگرده، چون مشکل با executionTimeout رفع نشده. در مورد سوال دوم هم، در حال حاضر به چه شکلی از اون Web Service در Classic ASP ی خودتون استفاده می کنید؟ SOAP Client، XMLHttp Rquest یا ..؟ لطفا قدری توضیح بدید...
> 
> موفق باشید.


- آخه من لوکال تست میکنم مشکلی ندارم و حتی موقعی که توی VS2008 برنامه رو اجرا میکنم و اگر از اکسپلورر آدرس وب سرور داخلی اونو بزنم کارمیکنه (http://localhost:port/service/webservice.asmx) مشکلی نداره و کار میکنه اما اگه پابلیش کنم حتی توی iis همون کامپیوتری که الان تست کردم کارنمیکنه واقعا کلافه شدم 
- من الان توی وی بی دات نت 2 دارم استفاده میکنم و تا حالا ازش توی ای اس پی کلاسیک استفاده نکردم

----------


## pani_83

سلام
میشه لطفا" درباره تست وب سرویس اطلاعاتی بدید

----------


## alonemm

> سلام
> میشه لطفا" درباره تست وب سرویس اطلاعاتی بدید


خب اگه شما وب سرویس رو که ساختید رو در برنامه های تحت وب ویا تحت ویندوز بکار بگیرید بهترین تست رو میتونید داشته باشید.
از نظر سرعت هم به سرور و بار اطلاعات و پهنای باند شبکه بستگی داره.

----------


## علیرضا حسن زاده

سلام و تشکر از راهنمایی هاتون
ممکنه در مورد اعتبار سنجی . حق دسترسی کاربر در Webservice هم مثال بزنید؟

----------


## alonemm

> سلام و تشکر از راهنمایی هاتون
> ممکنه در مورد اعتبار سنجی . حق دسترسی کاربر در Webservice هم مثال بزنید؟


باسلام:
برای اینکار شما میتونید کلاسی که در وب سرویس تعریف کردید رو در قسمت سازنده و یا در یک متد نام کاربری و رمز عبور رو بفرستید درصورتی که در پایگاه داده وچود داشت عملیات بازگردانی انجام شود و در غیر این صورت Null برگردونید.


موفق باشید.

----------


## علیرضا حسن زاده

> برای اینکار شما میتونید کلاسی که در وب سرویس تعریف کردید رو در قسمت سازنده و یا در یک متد نام کاربری و رمز عبور رو بفرستید درصورتی که در پایگاه داده وچود داشت عملیات بازگردانی انجام شود و در غیر این صورت Null برگردونید.


یعنی برای هر تابعی که بخوام اجرا کنم باید نام کاربر و کلمه عبور رو هم به عنوان پارامتر به تابع ارسال کنم؟
روش دیگه وجو نداره؟ مثلا مثل سایت اگه کسی Login کرد سایت اون رو از طریق Session یا کوکی ... می شناسه و اعتبار سنجی کاربر در ادامه به صورت ضمنی انجام میشه نه مستقیم؟ برای Webservise هم همچین امکانی هست؟

----------


## alonemm

> یعنی برای هر تابعی که بخوام اجرا کنم باید نام کاربر و کلمه عبور رو هم به عنوان پارامتر به تابع ارسال کنم؟
> روش دیگه وجو نداره؟ مثلا مثل سایت اگه کسی Login کرد سایت اون رو از طریق Session یا کوکی ... می شناسه و اعتبار سنجی کاربر در ادامه به صورت ضمنی انجام میشه نه مستقیم؟ برای Webservise هم همچین امکانی هست؟


برای استفاده از سشن در وب سرویس:
http://msdn.microsoft.com/en-us/library/aa480509.aspx
http://www.codeproject.com/articles/...b-Service.aspx

----------


## saberfarhadi

سلام دوستان من می خوام با سی شارب یه برنامه بنویسم که بره به یه هاست cpanel و به دیتابیسش که از نوع mysql هست وصل بشه . توی سیستمم با نصب نرم افزار wamp server که پایگاه mysql  رو داره و با اضافه کردن           mysql connector به reffrence برنامم داخل سی شارپ تونستم وصل بشم و تبادل اطلاعات با پایگاه دادم داشته باشم اما به پایگاه داده ای که داخل هاست هست نمی تونم وصل بشم . آی پی سایت رو دادم،آی پی خودمو هم داخل سایت توی قسمت دسترسی به ریموت اکسسش دادم   اما نشد که نشد

----------


## zkooch

بسیار عالی بود  میشه کمی در مورد وب سرویسهای ارایه شده به زبان phpتوضیح بدید که در دات نت به جه صورت می توان استفاده کرد مخصوصا در سایتهای فروش

----------


## kamalzadeh

عالی بود بازهم اگه اطلاعات کاملتری و یا پاورپوینتی در این زمینه دارید میشه محبت نمائید
ممنون از لطفتون

----------


## zgh_zgh

سلام با کلیک برروی 
*web services on the local machine 				*

   این خطا رو میده
There was an error while enumerating services on local machine:  
Active Directory Services cannot find the web server. A possible cause  for this is an incompatibility between versions of Internet Information  Server (IIS) on the client and the server. Another possible cause is  that IIS is not installed on the local machine, or the user identity  under which you are running may not have permissions to view websites on  this machine. To view websites on this machine, make sure that you run  Visual Studio as administrator. On Windows Vista computers with IIS  installed, make sure that IIS Metabase and IIS 6 configuration  compatibility feature is enabled.  

برای رفع این خطا باید چکار کنم

----------


## ali_fbi

سلام دوست من 

من از این وب سرویس قصد دارم  استفاده کنم  از متد sendsms استفاده کردم ولی  متد get message    نتونستم ازش خروجی بگیرم   یعنی نتونستم بفهمم  مقدارش را چطور بر می گردونه  و به کجا بر می گردونه 

دوستان اگه لطف کنید ن راهنمایی کنید ممنو می شوم 

لینک وب سرویس  : p.sms.ir/post/send.asmx

دوستان فقط  زاهنمایی کنند این متد چگونه و به کجا مقدارش را بر می گردونه ممنون می شم 

باتشکر

----------


## Mer3deh

سلام
ممنون از اطلاعات خوبی که در اختیار قرار دادید
من یک پروژه وب سرویسی ساده نوشتم مثلا تبدیل تاریخ شمسی به قمری و میخوام با یک برنامه تحت ویندوز تستش کنم. زمانی که میخوام add reference کنم چیزی بنام Add web reference نداره و add service reference داره که وقتی add کردم زمانیکه میخوام از وب سرویسم instance بگیرم و استفاده کنم، قبول نمیکنه و میگه:
cannot create an instance of the abstract class or interface "TestDate.localhost.service1soap
" که اسم namespaceی که موقع add service میخواد رو localhost گذاشتم. TestDate هم اسم پروژه ویندوزیم هست.

ممنون میشم راهنمایی کنید.

----------


## rambod51

سلام به دوستان من تازه شروع به کار وب سرویس کردم و نتونستم چیز زیادی از بحث های شما رو متوجه بشم من یک وب سرویس http://www.ignyte.com/webservices/ig...functions.asmx رو دارم اگر میشه یک مثال عملی با این بنویسید و روی سایت قرار بدبد که ما هم از رو اون متوجه بشیم ممنون میشم حالا هر متدی رو که تونستید فراخوانی کنید که توی سایت با اون عملا اجرا بشه ممنونم میشم
با تشکر از شما

----------


## aensiyeh

سلام 
شما ساخت وب سرویس با زبان php وwsdlوsoap ؟؟؟

----------


## aliphp1

ای کاش همچین تاپیکی برای راه اندازی وبسرویس با php ایجاد میشد

----------


## hbsoft

سلام دوستان
من می خوام پایان نامه ی ارشدمو تو این زمینه کار کنم کسی هست که یه شاخه ی جدیدیو تو زمینه وب سرویس بهم پیشنهاد کنه. ممنون میشم کسی کمک کنه/

----------


## ali66280

سلام
میشه یه کدی اجرا بشه بدون این که لازم باشه کسی به سایت مراجعه کنه؟ می خوام بدونم با *وب سرویس* باید کار کنم؟
واضح تر توضیح می دهم.
مثلا سر ساعت 5 یک داده از یه جایی خونده بشه و وارد دیتابیس بشه، بدون این  که لازم باشه حتی یک نفر وارد سایت بشه. فرض کنید بازدید سایت صفر هست!
ممنون

----------


## aliramazani

من یه نمونه پروژه وب سرویس دارم میخوام اینو تو پروژه خودم استفاده کنم ولی نمیدونم چطور وب سرویس موجود در اون را به پروژه خودم اضافه کنم. چون در حالت عادی یه شکل دیگه میاد

----------

