PDA

View Full Version : سوال: دليل ارسال نشدن پارامتر ها به يو آر ال در تابع چيست؟



bamzi software
یک شنبه 14 آذر 1389, 12:02 عصر
چرا وقتي اين function انجام ميشه پارامتر هاش در url قرار نميگيره؟


public string zakhire(string s,string d)
{

string sql = " insert into FX_Forecast2 (Symbol,DateTime) values( '"+s+"',"+d+")";

OpenDb();

cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();

con.Close();
return sql;
}اين كدي است كه در يك صفحه وب سرويس نوشته شده.
پارامترهاي s و d در يك صفحه aspx از دو textbox گرفته ميشوند.

protected void Button1_Click(object sender, EventArgs e)
{
string w;
localhost.Service s=new localhost.Service();
w=s.zakhire(TextBox1.Text, TextBox2.Text);
Response.Write(w);

}


بعد از اجراي اين تابع هم رشته sql در صفحه اي نشان داده ميشود.

حالا مشكل اينجاست كه من به پارامترهاي ورودي كه در url قرار ميگيرند احتياج دارم اما فقط نام تابع در url قرار ميگيرد و پارامتر ها نشان داده نمي شوند!!

http://localhost:..../WebS-t/Default.asmx/zakhireدليل اين مسئله چيست؟

bamzi software
دوشنبه 06 دی 1389, 16:58 عصر
در يك جايي كه تقريبا همين كد اما به زبان vb نوشته شده بود ديدم كه در هنگام اجراي اين كد علاوه بر نام تابع پارامترها، مقدار هم در يوآرال قرار گرفته بودند..اما در اينجا فقط نام تابع قرار ميگيره!!!.

دليلش چيه؟
آيا براي ارسال پارامترها كد خاصي بايد بنويسم؟

bamzi software
چهارشنبه 08 دی 1389, 12:31 عصر
اگر در هنگام اجراي تابع وقتي صفحه اي باز ميشه طبيعي هست كه نام تابع به همراه پارامترهاي ورودي در يوآرال قرار بگيره پس چرا در اينجا اين اتفاق نميفته؟

يعني هيچ كسي اينجا نميدونه راحل مشكل من چيه؟!!!!

Amir Oveisi
چهارشنبه 08 دی 1389, 13:09 عصر
من دقیقا متوجه کاری که میخواید انجام بدید نشدم، آیا میخواین که پارامتر هایی رو به صورت queryString به یک web service منتقل کنید؟
اگر نه، لطفا دقیق تر توضیح بدید.

bamzi software
چهارشنبه 08 دی 1389, 17:50 عصر
آیا میخواین که پارامتر هایی رو به صورت queryString به یک web service منتقل کنید؟

بله،دقيقا.
من در يك برنامه اي يك يوآرال كه شامل نام تابع و پارامترهاش هست رو مي خوام با يك QueryString به وب سرويس منتقل كنم.

حالا دارم اين وب سرويس رو ميسازم و ميخوام كه اين تابع رو فراخواني كنم.
اما در هنگام اجراي اين تابع فقط نام تابع در يوآرال قرار ميگيره.

چرا پارامترها و مقاديرش در يوآرال قرار نميگيره؟

bamzi software
یک شنبه 12 دی 1389, 17:41 عصر
پس چي شد جناب "Amir Oveisi" ؟؟؟ كسي نميدونه جواب سوال من چيه؟

bamzi software
دوشنبه 27 دی 1389, 11:46 صبح
كلا موضوع اين هست كه من قراره از چنين يو آر ال اي استفاده كنم:
مي خوام پارامترهاشو بگيرم و در ديتابيس واردكنم.


http://aaaa.com/Default.asmx/zakhire?Symbol=+S+&A=+d;اين يو آر ال هم از يك نرم افزار ديگه صدا زده ميشه(mql4).

حالا مي خوام اين يوآرال رو بسازم ..
براي همين يك وب سرويس ساختم،يك صفحه به نام 'Default.asmx' و يك متد در webmethod به نام 'zakhire'..


[WebMethod]
public void zakhire(string s,string d)
{

string sql = " insert into FX_Forecast2 (Symbol,A) values( '"+s+"','"+d+"')";

OpenDb();

cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();

con.Close();

}فكر ميكردم كه با تست اين صفحه ميتونم اين يوآرال رو در آدرس بار ببينم،اما نشد و فقط اين لينك ظاهر شد:

http://localhost:..../WebS-t/Default.asmx/zakhireبايد چكار كنم تا بتونم اون يوآرال رو بسازم؟

bamzi software
یک شنبه 24 بهمن 1389, 11:09 صبح
تونستم جواب سوالم رو پيدا كنم.

جواب رو براي كساني كه با وب سرويس كار ميكنند و مثل من به اين مشكل برخوردند ميذارم:

اين كد رو در فايل "Web.Config" داخل قسمت "system.web" وارد كنيد:


<webServices>

<protocols>

<add name="HttpGet"/>

<add name="HttpPost"/>

</protocols>

</webServices>

موفق باشيد.