ورود

View Full Version : مشکل کلاینت وب سرویس هنگام فراخوانی با پورت...



alidehban
چهارشنبه 23 بهمن 1392, 11:46 صبح
دررود بر تمام دوستان برنامه نویس....
شرح ماجرا :
من یک وب سرویس رو با دلفی از نوع (ISAPI) نوشتم و روی وب سرور ویندوز publish کردیم و داره روی valid ip بدون هیچ مشکلی کار میکنه...حالا به دلیل تغییرات شبکه ی سازمان یک پراکسی سرور جلوی درگاه سازمان قرار گرفته و با NATING و اینجورچیزا درخواست های مارو اگه رو پورت مثلا 4040 باشه رد میکنن رو همون وب سرور قدیم...
مشکل این هست که توی browser لینکش رو (با پورت جدید) بزنی xml وب سرویس باز میشه ، حتی با importer دلفی هم میشناسه و ایمپورت میکنه اما هیچ متدی invoke نمیشه و تو پیغام خطاش هم پورت رو نشون نمیده...درواقع میره رو پروکسی سرور که مسلماً خطای 404 و...
لازم به ذکر است که پورت رو هم رو URL و هم تو پراپرتیه port شئ HTTPRIO در کلاینت تست زدم و فایروال هم روی وب سرور off هست سمت کلاینت...
کیست که مرا یاری کند؟

نمونه کد ساخته شده با ایمپورتر:



function GetIWs_Tajmie(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IWs_Tajmie;
const
defWSDL = 'http://ip:4040/WS/WebService_Tajmie.dll/wsdl/IWs_Tajmie';
defURL = 'http://ip:4040/WS/WebService_Tajmie.dll/wsdl/IWs_Tajmie';
defSvc = 'IWs_Tajmieservice';
defPrt = '4040';
var
RIO: THTTPRIO;
begin
Result := nil;
if (Addr = '') then
begin
if UseWSDL then
Addr := defWSDL
else
Addr := defURL;
end;
if HTTPRIO = nil then
RIO := THTTPRIO.Create(nil)
else
RIO := HTTPRIO;
try

Result := (RIO as IWs_Tajmie);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := '4040'; // این بخش رو خودم وارد کردم
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
end;



نمونه فراخوانی متد ها بطور مثال :



procedure TForm1.btn1Click(Sender: TObject);
var a:Integer;

begin
a:=GetIWs_Tajmie(true).GetServerUnixTime;
ShowMessage( IntToStr(a) );

end;



نه میخوام بدونم چرا بدون پورت جواب میده و با پورت نه؟!!!

alidehban
چهارشنبه 30 بهمن 1392, 11:03 صبح
ممنون طلا...اما اون پست رو من دیدم و مشکلم حل نشده بود... من جستجو رو بلد هستم باور کن نیازی نیست برات توضیح بیشتری بدم بحث من حول مفاهیم soap بود و از INDY هم استفاده نمیکنم،شما اصلاً موضوع سوال من رو متوجه نشدی ! پس خودت رو تو زحمت ننداز...مرسی.
اما لازم میدونم بگم که :
پسر تو فکر میکنی کی هستی که با همه تو پستهات اینجوری صحبت میکنی حداقل یکسال قبل از اینکه بدونی این فروم وجود داره من توش عضو بودم ، هرکی اینجا کم پست بزاره دلیل بر تازه کار بودنش نیست و درواقع این vBulletin و افزونه های تخیلیش ملاک تصمیم گیریش تو این زمینه ناقصه...من و خیلی های دیگه سرچ کردن رو بلدیم لازم نیست به همه گوشزد کنی حالشو نداری یا اطلاعات کافی نداری میتونی جواب ندی دوست عزیز اصلاً چرا نمیسپری به دیگران...؟
ضمناً از یاد نبرید که فروم برنامه نویس تنها فروم دنیا نیست و من خودم به شخصه بعد از سرچ ها و نتیجه نگرفتن آخرین جایی که توش سوال میپرسم برنامه نویس هست...چون تا حالا فکر میکردم یه سری افراد باتجربه هستن که راه حل های مناسب ارائه میدن نه چهار تا تازه به دوران رسیده...
اون مشکل رو هم خودم حلش کردم اگه دوست داشتی بگو تا برات توضیح بدم...
بدرود تا درودی دیگر....

یوسف زالی
چهارشنبه 30 بهمن 1392, 13:26 عصر
چرا با هم این طوری صحبت می کنید؟!
پورتی که در SOAP گفته شده با اونی که ما می دونیم چیه یکم فرق داره.
حالا شما هم کدت رو بگذار من می خونم و حتما چیز جدید یاد می گیرم.
قرار نیست که هر کس ادمین شد خدا باشه که.
همون طور که به نظر من هم رسید کار با جستجو حل می شد. مثلا خود من دو بار کد اتصال با SOAP رو قرار دادم. این احتمال رو هم نادیده نمی گیرم که سرچ سایت بد عمل می کنه. اما منظور دوستمون آقای GOLD پریدن به کسی نیست. ایشون طبق شناختی که ازشون دارم، بسیار حرفه ای برخورد می کنند، در عالم حرفه ای بودن هم تذکر ها یکم خشک و ناصمیمی از آب در میان.
در هر صورت پیشنهاد می کنم همین جا دلخوری رو رها کنید. از هر دوتون متشکرم.
منتظر کد شما هم هستم.

alidehban
چهارشنبه 30 بهمن 1392, 19:10 عصر
چرا با هم این طوری صحبت می کنید؟!
پورتی که در SOAP گفته شده با اونی که ما می دونیم چیه یکم فرق داره.
حالا شما هم کدت رو بگذار من می خونم و حتما چیز جدید یاد می گیرم.
قرار نیست که هر کس ادمین شد خدا باشه که.
همون طور که به نظر من هم رسید کار با جستجو حل می شد. مثلا خود من دو بار کد اتصال با SOAP رو قرار دادم. این احتمال رو هم نادیده نمی گیرم که سرچ سایت بد عمل می کنه. اما منظور دوستمون آقای GOLD پریدن به کسی نیست. ایشون طبق شناختی که ازشون دارم، بسیار حرفه ای برخورد می کنند، در عالم حرفه ای بودن هم تذکر ها یکم خشک و ناصمیمی از آب در میان.
در هر صورت پیشنهاد می کنم همین جا دلخوری رو رها کنید. از هر دوتون متشکرم.
منتظر کد شما هم هستم.

جناب You-See من از شما تشکر و عذرخواهی میکنم...اما 2 تا نکته وجود داره :
1- منظورتون از اینکه میگید کد اتصال به soap رو قرار دادید دقیقاً چیه؟ اگه سوال کننده کد صحیح رو بدونه که دیگه سرچ نیاز نیست و یا اگه حدودش رو بدونه هم از گوگل استفاده ی بهتری میتونه داشته باشه تا سرچ فروم...ضمناً ما لینک نخواستیم چرا نتیجه ای که جستجو کردید رو KeyWord هاش رو نمیزارید تا ماهی گیری یاد بدید اگر دلسوز طرف هستید...
2- من هم نگفتم کسی که ادمین میشه خداست ، بلکه اکیداً عقیده دارم همه چیز را همگان دانند و این بزرگترین دستاورد کسایی که تو رشته ی ما کار میکنن هست واگه کسی به این باور نرسیده باشه کاملاً بیراهه رفته... وقتی یادآوری کردم شما ادمین هستید منظورم به عبارتی درخواست راهنمایی از شما کارکرده ها و باتجربه ها بود...فقط میتونستید بگید من اطلاعات ندارم به هیچ کس هم برنمیخورد...

به هر روی ممنون و سپاسگذارم از هرکس که برای گشودن گره ای وقت صرف میکنه....
تا بعد....