PDA

View Full Version : وب سرویس Web service از آغاز تا پایان...



reza_rad
یک شنبه 07 خرداد 1385, 14:43 عصر
در این تاپیک مروری بر وب سرویسها و طرز کار با آنها انجام می گیرد.
امید است که مورد استفاده ی دوستان قرار گیرد.

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

reza_rad
یک شنبه 07 خرداد 1385, 14:44 عصر
یک وب سرویس به معنای ساده نوعی کامپوننت تحت وب است.
این کامپوننت به 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
یک شنبه 07 خرداد 1385, 15:25 عصر
بسیار عالی.
موضوع فوق العاده بدرد بخوری رو انتخاب کردید.
ما آماده هستیم برای درسهای بعدی.

reza_rad
دوشنبه 08 خرداد 1385, 09:52 صبح
لطف دارید. ممنون.
----------

در این قسمت ایجاد وب سرویس با 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/quickstart/aspplus/doc/webservicetypes.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
دوشنبه 08 خرداد 1385, 12:17 عصر
در قسمت قبل طریقه ی ایجاد یک وب سرویس را گفتیم. اما گفتیم که وب سرویس به تنهایی نمی تواند توسط کاربر استفاده شود بلکه باید یک 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 را در شکل زیر می بینید:
http://aspnet.4guysfromrolla.com/images/proxyRole.gif

reza_rad
دوشنبه 08 خرداد 1385, 13:55 عصر
پس از یادگیری نحوه ی کار با وب سرویس ها اکنون بهترین زمان برای درک مفهوم پیشرفته و بسیار زیبای SOA است.

http://msdn.microsoft.com/nodehomes/graphics/80x60/ServiceOrientedArch.jpg

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

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

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

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

http://www.service-architecture.com/images/architecture.jpg

برای آشنایی بیشتر با SOA :
http://msdn.microsoft.com/architecture/soa/default.aspx?pull=/library/en-us/dnmaj/html/aj1soa.asp

papa_fal
سه شنبه 09 خرداد 1385, 05:56 صبح
سلام
عالیه آقای راد.
خیلی خوبه همین طور به آموزش ادامه بدید.
با تشکر از شما
موفق باشید.

PrinceDotNet
سه شنبه 09 خرداد 1385, 11:59 صبح
خیلی ممنون .

reza_rad
شنبه 20 خرداد 1385, 07:12 صبح
با عرض معذرت...
من یه مدت سرم خیلی شلوغ بود و البته هنوز هم شلوغه...
بخاطر همین نمی تونم با سرعت قبلی ادامه بدم. ولی هر زمانیکه وقت بشه ادامه میدم .

همانطوریکه گفته شد 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
یک شنبه 18 تیر 1385, 10:42 صبح
PDF مطالب گفته شده(دوباره)

reza_rad
پنج شنبه 14 دی 1385, 07:42 صبح
تا اینجا راههایی که ما برای فراخوانی وب سرویس بررسی کردیم به اینصورت بود که شما حتما باید مشخصات وب سرویس ها رو هنگام تولید کد برنامه داشته باشید تا بتونید Proxy Class رو براشون ایجاد کنید یعنی Add web reference اش کنید و بعدا ازش استفاده کنید.

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

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

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

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


http://msdn2.microsoft.com/en-us/library/aa730835(vs.80).aspx

سید مسعود موحد
چهارشنبه 27 دی 1385, 11:32 صبح
آقا خیلی عالی بود

nasrin_fallah
چهارشنبه 04 بهمن 1385, 12:44 عصر
ممنون از مطالب مفیدی که نوشتین

Asad.Safari
یک شنبه 22 بهمن 1385, 11:55 صبح
با تشکر آقای راد !

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

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

با تشکر

reza_rad
دوشنبه 23 بهمن 1385, 07:21 صبح
خواهش می کنم:)



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

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


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


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

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


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


با تشکر

reza_rad
دوشنبه 23 بهمن 1385, 10:45 صبح
به نظر شما تو این مورد Remoting جواب میده یا web service ??



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

Asad.Safari
دوشنبه 23 بهمن 1385, 12:23 عصر
چرا Replication کار نمی کنید؟


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

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

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

با تشکر

reza_rad
دوشنبه 23 بهمن 1385, 13:31 عصر
من اصلا با این Replication آشنایی ندارم ؟؟

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



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

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

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

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

موفق باشید.

RealDream
یک شنبه 27 اسفند 1385, 14:31 عصر
خیلی عالیه اما برای من یه سوال هست
من می تونم نرم افزار تحت ویندوزم رو با این کامپوننت ارتباط بدم یعنی از یه وب سرویس اطلاعتی رو بگیرم تو نرم افزارم آنالیز کنم و دوباره به همین وب سرویس پس بدم . مثلا سیستم های ارزش افزوده اس ام اس

reza_rad
یک شنبه 27 اسفند 1385, 22:11 عصر
من می تونم نرم افزار تحت ویندوزم رو با این کامپوننت ارتباط بدم یعنی از یه وب سرویس اطلاعتی رو بگیرم تو نرم افزارم آنالیز کنم و دوباره به همین وب سرویس پس بدم . مثلا سیستم های ارزش افزوده اس ام اس


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

iekrang
چهارشنبه 30 خرداد 1386, 16:47 عصر
... تا بتونید Proxy Class رو براشون ایجاد کنید یعنی Add web reference اش کنید و ...
راه های ایجاد Proxy Class به جز Add web reference چی هست؟ فکر میکنم یکیش استفاده از WSDL.exe باشه.میشه واسم یه توضیح بدید.
اینجا یه Web Service Proxy Generator (http://www.arcware.net/archive/2007/04/04/Web-Service-Proxy-Generator.aspx)هست که جالبه ولی من نمیدونم از کلاسی که از این طریق ساخته میشه چطور میشه استفاده کرد.
ممنون میشم اگر در این مورد توضیحی واسم بدید چون من یکم با این قضیه مشکل (http://barnamenevis.org/forum/showthread.php?t=70913) پیدا کردم و ظاهراً راه حلش اینه که برای ایجاد Proxy Class از WSDL.exe استفاده کنم.

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

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

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

iekrang
پنج شنبه 31 خرداد 1386, 11:25 صبح
در ضمن اگه وب سرویسی هست که خودت نوشتی پس می تونی روی لوکال دیباگش کنی و بعد بذاریش روی سرور دیگه.

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

reza_rad
شنبه 02 تیر 1386, 07:33 صبح
خواهش می کنم:)

این Error رو میگیره:Could not establish connection to network.
از ارور شما بیشتر اینطور به نظر میرسه که مشکل از ارتباطات شبکه ای باشه. فایروال روی سیستمتون غیرفعال هست؟
حالا من با pocket pc کار نکردم ولی باید راهی باشه برای اینکه چک کنید و ببینید که اصلا می تونه کامپیوتر شما رو توی شبکه ببینه یا نه؟

iekrang
شنبه 02 تیر 1386, 08:05 صبح
حالا من با pocket pc کار نکردم ولی باید راهی باشه برای اینکه چک کنید و ببینید که اصلا می تونه کامپیوتر شما رو توی شبکه ببینه یا نه؟
مشکلی از لحاظ شبکه نداره.
(به هر حال ممنون.مقاله هاتون واسه من که خیلی پربار بودن)

reza_rad
شنبه 02 تیر 1386, 08:22 صبح
مشکلی از لحاظ شبکه نداره.
(به هر حال ممنون.مقاله هاتون واسه من که خیلی پربار بودن)

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

mhn143
سه شنبه 13 شهریور 1386, 19:22 عصر
ممنون از مقاله خوبتون من یه مشکلی که دارم شناسایی کاربرایی که به web service وصل می شن دارم می شه یه کمکی کنید

mhn143
چهارشنبه 14 شهریور 1386, 15:51 عصر
خودم پس از یک روز بالا پایین رفتن از این دهکده نچندان کوچک:تشویق: پیدا کردم شما اگه نخواید که هرکسی به 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
شنبه 05 آبان 1386, 12:26 عصر
فرق وب سرویس با یه چیزی مثل اکستنشن در پی اچ پی چیه؟ یا مزیتش نسبت به اینکلود و اینها...
بنظرم مفهومشون خیلی نزدیک بهم هست. شاید یه حالت ساده و بهینه و خودکار شده تری هست؟
ببخشید مثالهاتون هم با دات نت بود ظاهرا، بنده زیاد حوصله نکردم بخونم.

reza_rad
شنبه 05 آبان 1386, 18:25 عصر
فرق وب سرویس با یه چیزی مثل اکستنشن در پی اچ پی چیه؟ یا مزیتش نسبت به اینکلود و اینها...
بنظرم مفهومشون خیلی نزدیک بهم هست. شاید یه حالت ساده و بهینه و خودکار شده تری هست؟
ببخشید مثالهاتون هم با دات نت بود ظاهرا، بنده زیاد حوصله نکردم بخونم.

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

V_Shirvani
چهارشنبه 28 آذر 1386, 17:15 عصر
سلام
من یک مشکل در ارتباط با ارسال اطلاعات به وب سرویس دارم
من برای ارسال اطلاعات یک بانک اطلاعاتی که بر روی یک برنامه تحت ویندوز ساخته میشه به یک نرم افزار تحت وب (بانک اطلاعات بر روی سرور) از یک وب سرویس استفاده کردم.

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

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

reza_rad
پنج شنبه 29 آذر 1386, 09:14 صبح
آیا دیتاست به وب سرویس ارسال میشه درست؟
آیا کد وب سرویس رو 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.com/faq/string_or_binary_data_truncated_p1.aspx

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

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

reza_rad
شنبه 01 دی 1386, 08:29 صبح
چرا من متن سوال شما رو خوندم
گفتم Trace کنید تا دقیقا همون اسکریپت insert ای که توی وب سرویستون ایجاد میشه رو بردارید ببرید و توی SQLServer تست کنید مثلا تویquery analyzer ببینید آیا مشکلی نداره؟

M.Dalvand
یک شنبه 26 اسفند 1386, 10:48 صبح
یک وب سرویس به معنای ساده نوعی کامپوننت تحت وب است.
این کامپوننت به 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 است که متدها و بعضی خصوصیات دیگر وب سرویس را توضیح می دهد.


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

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

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

YAprogress
چهارشنبه 18 اردیبهشت 1387, 23:40 عصر
پروژه كارشناسي من در مورد وب سرويس ميباشد. لطفا منابع لازم را براي يادگيري آن را لطف كنيد.

anonymouse
یک شنبه 27 مرداد 1387, 11:46 صبح
سلام
پروژ کارشناسی من در مورد SOA است و به مطالبی در مورد ws_security نیاز دارم
اگر ممکنه در این مورد توضیح بدین و منابعی رو معرفی کنید
ممنون

mehdi601f
چهارشنبه 15 آبان 1387, 11:58 صبح
چطور میشه صفحه تست رو از وب سرویس غیرفعال کرد ؟
و چطور میشه

The following operations are supported. For a formal definition, please review the Service Description (http://localhost/WS_Zeyton.asmx?WSDL).

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

niloofar norouzi
پنج شنبه 16 آبان 1387, 15:42 عصر
با سلام
wsdl.exe چیست و چگونه می شود از آن برای استفاده از وب سرویسها ، بهره گرفت؟

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

niloofar norouzi
دوشنبه 27 آبان 1387, 23:13 عصر
با سلام


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

sahele_sheni
جمعه 15 آذر 1387, 23:16 عصر
http://www.mambolearn.com/forum/index.php/topic,17476.0.html

delphi77
یک شنبه 15 دی 1387, 15:59 عصر
دوستان کاش کسی هم به این تاپیک بره و سوال آخر من را جواب بده!

http://barnamenevis.org/forum/showthread.php?t=134374

xamfia
سه شنبه 11 فروردین 1388, 14:29 عصر
در ادامه بحث مقدماتی که درباره سرویس های وب داشتم در این پست به سراغ 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> : تمام بخشهای ذکر شده تا اینجا، در این قسمت به هم متصل می شوند.
http://www.oracle.com/technology/sample_code/tutorials/fbs/images/wsdlstruct.jpg
( از@ تا اینجا از نوشته های مجید اطلس باف (http://radcom.ir/weblog/majid/) نیز بهره گرفته ام- قابل توجه کسانی که اخلاق علمی را رعایت نمی کنند!!)


ترجیح میدهم به جای تعاریف قلمبه سلمبه(!) که معمولا ما برنامه نویسان از آن متنفریم ، برویم به سراغ یک مثال سادهاز سایت آموزشی 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 (http://www.w3schools.com/webservices/tempconvert.asmx)
حال به سراغ بحث خودمان پیرامون WSDL برمیگردیم ، اگر شما سری به آدرس زیر بزنید میتوانید WSDL مربوط به کلاس بالا را مشاهده کنید:
http://www.w3schools.com/webservices/tempconvert.asmx?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 می باشد.



http://www.wsper.org/wsdl20.png
در شکل بالا می توانید نمای کلی فرایند یک WSDL را ببینید و با چگونگی عملکرد کلی آشناتر شوید.
برای اطلاعات بیشتر میتوانید ار لینک زیر استفاده کنید



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




با تشکر



میثم نوایی




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

xamfia
سه شنبه 11 فروردین 1388, 14:37 عصر
بالاخره مقاله وب سرویس آماده شد.
در این مقاله سرویس وب را با Jbuilder می سازیم
در Tomcat مستقر میکنیم
و با یک برنامه کاربر فراخوانی میکنیم
همچنین نحوه اجرای Tomcat و ActiveBPEL را نیز آموزش داده ام.
در ضمن برای کسانی هم که تازه شروع کرده اند و چیزی در مورد سرویس های وب و معماری سرویس گرا نمی دانند توضیحات مقدماتی و کافی داده ام.


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


http://rs674.rapidshare.com/files/21...WebService.pdf (http://rs674.rapidshare.com/files/214839138/WebService.pdf)
www.xamfia.com/files/webservice.pdf (http://www.xamfia.com/files/webservice.pdf)


در ضمن بزودی فایل های برنامه را نیز منتشر میکنم.
همچنین اگر وقت کنم سعی میکنم بخشی را نیز برای کاربران NetBeans منتشر کنم.

سپاسگزارم

میثم نوایی

Meysam.Navaei@gmail.com (Meysam.Navaei@gmail.com)
www.xamfia.com (http://www.xamfia.com/)
www.persianwebservice.com (http://www.persianwebservice.com/)

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

ariana4
سه شنبه 26 آبان 1388, 11:37 صبح
سلام من یک مقاله کامل در مورد وب سرویسها و کاربرد آنها همینطور امنیت و ورک فلوی آنها می خواهم فایل word باشه ممنون میشم فوری است

samaneh_md
سه شنبه 26 آبان 1388, 21:19 عصر
mofid bud mamnun

pmn.asd
یک شنبه 09 اسفند 1388, 17:15 عصر
سلام
از مطالبتون خیلی متشکرم
لطفا در مورد Publish یک وب سرویس دات نت در IIS و با داشتن یک IP static توضیح بدین

قربونت :)

Khalil morradi
شنبه 10 مهر 1389, 20:00 عصر
دوستان سلام
من یک مشکلی با وب سرویس دارم لطفا کمکم کنید البته نمیدونم این تاپیک هنوز جوابی داره یا نه
من یک وب سرویس دارم که حجم زیادی از دیتا رو در قالب یک استرینگ برمیگردونه و قاعدتا وقت زیادی هم میگیره هنگام طراحی و تست مشکلی نداره ولی وقتی پابلیش میکنم کار نمیکنه البته این وب سرویس چند تا فانکشن داره که بقیه کوتاه تره کار میکنه من توی web.config مفدار <httpRuntime executionTimeout="1200"/> رو هم زیاد کردم اما فایده ای نداشت نمیدونم چرا اینجوریه من فکر میکنم از تایم اوتش باشه گرچه خطای تایم اوت نمیگیره و Internet Explorer cannot display the webpage میده حالا باید کجا تغییرش بدم (البته میخوام ترجیحا طرف سرور باشه) لطفا کمکم کنید

mehdi.mousavi
یک شنبه 11 مهر 1389, 11:02 صبح
دوستان سلام
من یک مشکلی با وب سرویس دارم لطفا کمکم کنید البته نمیدونم این تاپیک هنوز جوابی داره یا نه
من یک وب سرویس دارم که حجم زیادی از دیتا رو در قالب یک استرینگ برمیگردونه و قاعدتا وقت زیادی هم میگیره هنگام طراحی و تست مشکلی نداره ولی وقتی پابلیش میکنم کار نمیکنه البته این وب سرویس چند تا فانکشن داره که بقیه کوتاه تره کار میکنه من توی 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
یک شنبه 11 مهر 1389, 11:28 صبح
با تشکر از جنابعالی
بله من از دات نت 2 برای برنامه نویسی استفاده کرده ام و حالا میخوام از این وب سرویس برای صفحات asp کلاسیک استفاده کنم و الان موقعی که از آدرس http://.../service.asmx داخل بروزر وارد میکنم و دکمه Invoke رو برای تست میزنم یه کمی معطل میکنه و چیزی رو بر نمی گردونه در صورتیکه کلیه مشخصات wsdl رو نمایش میده و درست هم هست البته من تقریبا مطمئن هستم که مشکل از زمان تایم اوت اون هست اما سئوال اینه که آیا میشه تغییری طرف سرور داد که مشکل حل بشه یا نه واگر جواب منفی هست طرف کلاینت برای asp کلاسیک باید چکار کنم تا این زمان تایم اوت رو تنظیم کنم آیا باید همون فایل dll حاوی کلاس httpsoapclient رو با wsdl بسازم و اگر بسازم چطوری توی asp ازش استفاده کنم؟؟

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

موفق باشید.

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

موفق باشید.

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

pani_83
یک شنبه 04 اردیبهشت 1390, 22:55 عصر
سلام
میشه لطفا" درباره تست وب سرویس اطلاعاتی بدید

alonemm
دوشنبه 12 اردیبهشت 1390, 16:59 عصر
سلام
میشه لطفا" درباره تست وب سرویس اطلاعاتی بدید
خب اگه شما وب سرویس رو که ساختید رو در برنامه های تحت وب ویا تحت ویندوز بکار بگیرید بهترین تست رو میتونید داشته باشید.
از نظر سرعت هم به سرور و بار اطلاعات و پهنای باند شبکه بستگی داره.

علیرضا حسن زاده
سه شنبه 13 اردیبهشت 1390, 10:43 صبح
سلام و تشکر از راهنمایی هاتون
ممکنه در مورد اعتبار سنجی . حق دسترسی کاربر در Webservice هم مثال بزنید؟

alonemm
دوشنبه 26 اردیبهشت 1390, 14:15 عصر
سلام و تشکر از راهنمایی هاتون
ممکنه در مورد اعتبار سنجی . حق دسترسی کاربر در Webservice هم مثال بزنید؟
باسلام:
برای اینکار شما میتونید کلاسی که در وب سرویس تعریف کردید رو در قسمت سازنده و یا در یک متد نام کاربری و رمز عبور رو بفرستید درصورتی که در پایگاه داده وچود داشت عملیات بازگردانی انجام شود و در غیر این صورت Null برگردونید.


موفق باشید.

علیرضا حسن زاده
دوشنبه 26 اردیبهشت 1390, 17:36 عصر
برای اینکار شما میتونید کلاسی که در وب سرویس تعریف کردید رو در قسمت سازنده و یا در یک متد نام کاربری و رمز عبور رو بفرستید درصورتی که در پایگاه داده وچود داشت عملیات بازگردانی انجام شود و در غیر این صورت Null برگردونید.
یعنی برای هر تابعی که بخوام اجرا کنم باید نام کاربر و کلمه عبور رو هم به عنوان پارامتر به تابع ارسال کنم؟
روش دیگه وجو نداره؟ مثلا مثل سایت اگه کسی Login کرد سایت اون رو از طریق Session یا کوکی ... می شناسه و اعتبار سنجی کاربر در ادامه به صورت ضمنی انجام میشه نه مستقیم؟ برای Webservise هم همچین امکانی هست؟

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

برای استفاده از سشن در وب سرویس:
http://msdn.microsoft.com/en-us/library/aa480509.aspx
http://www.codeproject.com/articles/35119/Using-Session-State-in-a-Web-Service.aspx

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

zkooch
یک شنبه 02 مرداد 1390, 16:37 عصر
بسیار عالی بود میشه کمی در مورد وب سرویسهای ارایه شده به زبان phpتوضیح بدید که در دات نت به جه صورت می توان استفاده کرد مخصوصا در سایتهای فروش

kamalzadeh
دوشنبه 04 مهر 1390, 16:19 عصر
عالی بود بازهم اگه اطلاعات کاملتری و یا پاورپوینتی در این زمینه دارید میشه محبت نمائید
ممنون از لطفتون

zgh_zgh
یک شنبه 25 تیر 1391, 08:44 صبح
سلام با کلیک برروی
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
یک شنبه 07 آبان 1391, 02:49 صبح
سلام دوست من

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

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

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

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

باتشکر

Mer3deh
شنبه 30 آذر 1392, 13:43 عصر
سلام
ممنون از اطلاعات خوبی که در اختیار قرار دادید
من یک پروژه وب سرویسی ساده نوشتم مثلا تبدیل تاریخ شمسی به قمری و میخوام با یک برنامه تحت ویندوز تستش کنم. زمانی که میخوام 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
شنبه 08 آذر 1393, 13:00 عصر
سلام به دوستان من تازه شروع به کار وب سرویس کردم و نتونستم چیز زیادی از بحث های شما رو متوجه بشم من یک وب سرویس http://www.ignyte.com/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx رو دارم اگر میشه یک مثال عملی با این بنویسید و روی سایت قرار بدبد که ما هم از رو اون متوجه بشیم ممنون میشم حالا هر متدی رو که تونستید فراخوانی کنید که توی سایت با اون عملا اجرا بشه ممنونم میشم
با تشکر از شما

aensiyeh
شنبه 06 دی 1393, 19:35 عصر
سلام
شما ساخت وب سرویس با زبان php وwsdlوsoap ؟؟؟

aliphp1
شنبه 06 دی 1393, 20:06 عصر
ای کاش همچین تاپیکی برای راه اندازی وبسرویس با php ایجاد میشد

hbsoft
چهارشنبه 22 بهمن 1393, 01:26 صبح
سلام دوستان
من می خوام پایان نامه ی ارشدمو تو این زمینه کار کنم کسی هست که یه شاخه ی جدیدیو تو زمینه وب سرویس بهم پیشنهاد کنه. ممنون میشم کسی کمک کنه/

ali66280
شنبه 03 مرداد 1394, 15:45 عصر
سلام
میشه یه کدی اجرا بشه بدون این که لازم باشه کسی به سایت مراجعه کنه؟ می خوام بدونم با وب سرویس باید کار کنم؟
واضح تر توضیح می دهم.
مثلا سر ساعت 5 یک داده از یه جایی خونده بشه و وارد دیتابیس بشه، بدون این که لازم باشه حتی یک نفر وارد سایت بشه. فرض کنید بازدید سایت صفر هست!
ممنون

aliramazani
جمعه 14 آبان 1395, 23:44 عصر
من یه نمونه پروژه وب سرویس دارم میخوام اینو تو پروژه خودم استفاده کنم ولی نمیدونم چطور وب سرویس موجود در اون را به پروژه خودم اضافه کنم. چون در حالت عادی یه شکل دیگه میاد