PDA

View Full Version : وب سرویس



kochol
شنبه 17 اردیبهشت 1384, 00:22 صبح
با سلام

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

کد وب سرویس:


<WebMethod(Description:="Check UserName And Password")> _
Public Function getUsername(ByVal username As String, ByVal pass As String) As Boolean
con1.ConnectionString = System.Configuration.ConfigurationSettings.AppSett ings.GetValues(0).GetValue(0)
cmdCheckUid.Parameters(0).Value = username
Dim re As SqlClient.SqlDataReader
con1.Open()
re = cmdCheckUid.ExecuteReader
If re.Read Then
If pass = re(0) Then
Return True
Else
Return False
End If
Else
Return False
End If
re.Close()
con1.Close()
End Function

کد برنامه


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim serv1 As New KSChat.localhost1.Service1
Dim bl As Boolean = serv1.getUsername(txtUserName.ToString, txtPass.ToString)
End Sub

error


An unhandled exception of type 'System.Net.WebException' occurred in system.web.services.dll

Additional information: The request failed with HTTP status 401: Access Denied.

کدی که error دارد.


<System.Web.Services.Protocols.SoapDocumentMethodA ttribute("http://tempuri.org/keChat/Service1/getUsername", RequestNamespace:="http://tempuri.org/keChat/Service1", ResponseNamespace:="http://tempuri.org/keChat/Service1", Use:=System.Web.Services.Description.SoapBindingUs e.Literal, ParameterStyle:=System.Web.Services.Protocols.Soap ParameterStyle.Wrapped)> _
Public Function getUsername(ByVal username As String, ByVal pass As String) As Boolean
Dim results() As Object = Me.Invoke("getUsername", New Object() {username, pass})
Return CType(results(0),Boolean)
End Function

Behrouz_Rad
شنبه 17 اردیبهشت 1384, 06:13 صبح
http://support.microsoft.com/default.aspx?scid=kb;en-us;811318

M.GhanaatPisheh
شنبه 17 اردیبهشت 1384, 11:18 صبح
دوست عزیز
می تونید WSDL شو توی Explorer ببینید؟

kochol
شنبه 17 اردیبهشت 1384, 19:28 عصر
دوست عزیز
می تونید WSDL شو توی Explorer ببینید؟

سلام

من سوال شما را نفهمیدم

kochol
شنبه 17 اردیبهشت 1384, 20:28 عصر
سلام

خیلی ممنون از مقالتون که معرفی کردید مشکلم را حل کرد با اظافه کردن این کد


myProxy.Credentials= System.Net.CredentialCache.DefaultCredentials

ealireza
یک شنبه 18 اردیبهشت 1384, 16:35 عصر
دوست عزیز اگه میشه در مورد کاری که این کد انجام میده بیشتر توضیح بدید شاید به درد ما هم خورد :mrgreen:

kochol
یک شنبه 18 اردیبهشت 1384, 18:25 عصر
سلام

فکر نمی کنم به درد شما بخوره چون فقط از تو دیتابیس یوزرنیم و پاس ورد را چک می کند.

ealireza
دوشنبه 19 اردیبهشت 1384, 13:13 عصر
خوب دوست عزیز این چه نیازی به این چیزا داشت ؟



خوب میشد با یک EXECUTE این کار انجام بشه ..

kochol
دوشنبه 19 اردیبهشت 1384, 17:41 عصر
می خوام یوزر نیم و پاس ورد از طریق اینترنت توسط یک برنامه تحت ویندوز انجام بشه

ealireza
سه شنبه 20 اردیبهشت 1384, 00:03 صبح
می خوام یوزر نیم و پاس ورد از طریق اینترنت توسط یک برنامه تحت ویندوز انجام بشهچه باحال
ولی مگه با XML و ریموت این کار عملی نبود ؟

میشه در مورد این کد بیشتر توضیح بدید مرسی

kochol
سه شنبه 20 اردیبهشت 1384, 11:56 صبح
ولی مگه با XML و ریموت این کار عملی نبود ؟

من xml بلد نیستم میشه یه نفر یه توزیح بده که کدوم کار بهتره ؟

titbasoft
سه شنبه 20 اردیبهشت 1384, 13:23 عصر
اگر از دیتابیس SQL Server استفاده می کنید نیازی به هیچ کدوم ندارید. در غیر این صورت:
اگر می خواهید به platform های گوناگون سرویس بدید از web service استفاده کنید
یک راه دیگر هم استفاده از تکنولژی remote scripting و xmlHttp است که اگر جستجو کنید در همین سایت مطالبی در مورد آن خواهید یافت. البته استفاده اصلی آن این چیزی که شما می خواهید نیست!

kochol
سه شنبه 20 اردیبهشت 1384, 20:43 عصر
سلام

این کد برای asp.net web service می باشد که یک متد برای وب سرویس ایجاد می کند که دو تا مقدار استرینگ را می گیرد و یک مقدار true یا false برمی گرداند که کد درونی آن که با وی بی است برای اتصال به دیتا بیس


<WebMethod(Description:="Check UserName And Password")> _
Public Function getUsername(ByVal username As String, ByVal pass As String) As Boolean

بعد یک برنامه تحت ویندوز ایجاد می کنی و در مرورگر راه حل روی اسم پروژه رایت کلیک کنید و گزینه add web refrence را بزنید بعد در صفحه ویزارد باز شده روی گزینه سرچ در ماشین محلی را بزنید و می بینید که اسم برنامه وب سرویس را می آورد دکمه add را بزنید البته باید توجه داشته باشید که در موقعی که وب سرویس را ساختید باید از منو دیباگ گزینه build را بزنید تا کامپایل شود.

این هم نحوه تعریف و استفاده از متدهای وب سرویس



Dim serv1 As New KSChat.localhost1.Service1
serv1.Credentials= System.Net.CredentialCache.DefaultCredentials
Dim bl As Boolean = serv1.getUsername(txtUserName.ToString, txtPass.ToString)

موفق باشی :wise1:

kochol
سه شنبه 20 اردیبهشت 1384, 20:46 عصر
سلام دوستان عزیز من

من می خواهم یک برنامه چت بسازم که برای عضو های سایتم از برنامه ویندوز استفاده کنم و برای کاربران سایت تو یک صفحه asp.net اگر شما نظری دارید لطفا بفرمایید مخصوصا شما بهروز جان

ealireza
چهارشنبه 21 اردیبهشت 1384, 15:09 عصر
خوب فکر نمیکنی کسانی که 98 یا XP دارن و FrameWork.net ندارن چی کار باید بکنند ؟

فکر کنم با Delphi یا ++c بنویسی بهتر باشه ;) :wink:

kochol
چهارشنبه 21 اردیبهشت 1384, 18:18 عصر
خوب فکر نمیکنی کسانی که 98 یا XP دارن و FrameWork.net ندارن چی کار باید بکنند ؟

نه فکر نمی کنم چون باید دات نت فریم ورک را نصب کنند.
اصلا اصل مفهوم دات نت یعنی حمل پذیری