PDA

View Full Version : مشکل اجرای Web Application نوشته شده با Delphi.Net در سرور



saeed_82
چهارشنبه 25 آذر 1383, 14:34 عصر
من برنامه ای رو با دات نت نوشتم و روی سرور ارسال کردم ، روی سیستم محلی خودم درست جواب میده ولی روی سرور خطای عجیبی میده
من این برنامه رو قبلا با دلفی 8 نوشته بودم و مشکل نداشت ولی وقتی با دلفی 2005 بازنویسی کردم این خطا رویت میشه
این یه برنامه دفترچه تلفن محلیه با بانک اکسس
آدرس رو مینویسم ملاحظه بفرمایید
http://www.ramian.net/TelBook/telbookpage.aspx

البته وقتی مسیر اجرا رو تغییر میدم (در سرور خودم) این پیغام هم دیده میشه:


Line 52: "Passport" and "None"
Line 53: -->
Line 54: <authentication mode="Windows" />
Line 55:
Line 56: <!-- APPLICATION-LEVEL TRACE LOGGING

Source File: e:\inetpub\wwwroot\telb\web.config Line: 54


آیا authentication mode="Windows حالت درستیه؟

مهدی کرامتی
چهارشنبه 25 آذر 1383, 15:12 عصر
خیر،
<span dir=ltr>authentication mode="Forms"</span>
صحیح است.
اگر میخواهید از Windows Authentication استفاده کنید میبایست دسترسی مدیریتی (Administrator) به سرور داشته باشید تا بتوانید تنظیمات لازم (تعریف سطوح دسترسی، Group Policy و ...) را در سرور انجام دهید .

saeed_82
چهارشنبه 25 آذر 1383, 16:53 عصر
از راهنمایی شما بسیار متشکرم
این تغییر را حتی با یک ادیتور متنی در فایل web.config میشود اعمال کرد
ولی آیا جایی در خود کامپایلر دلفی 2005 هست که ما پیش فرض این متغیر را روی حالت Forms قرار دهیم

saeed_82
چهارشنبه 25 آذر 1383, 17:09 عصر
نه آقای کرامتی ظاهرا مشکل Authentication نیست
من وقتی مسیر رو از داخل www root جدا کردم و یک دایرکتوری مجازی ساختم مشکلی نداشتم ولی باز وقتی رو سرور منتقل میشه(منظورم host است) اون پیغام عجیب دیده میشه
لااقل اگه فایلی کم داشته باشه هم نمیگه لینکی که قبلا داده بودم رو نگاهی بیندازید
http://www.ramian.net/TelBook/telbookpage.aspx

مهدی کرامتی
چهارشنبه 25 آذر 1383, 23:07 عصر
ولی آیا جایی در خود کامپایلر دلفی 2005 هست که ما پیش فرض این متغیر را روی حالت Forms قرار دهیم
بله، هست. در فولدر

C&#58;\Program Files\Borland\BDS\3.0\Objrepos\DelphiDotNet\
در فایل Web.Config در خط 44 کلمه Windows را به Forms تغییر دهید. از این ببعد تغییری که در این فایل Web.Config داده اید در تمام پروژه های جدید اعمال میشود.


ظاهرا مشکل Authentication نیست
من وقتی مسیر رو از داخل www root جدا کردم و یک دایرکتوری مجازی ساختم مشکلی نداشتم ولی باز وقتی رو سرور منتقل میشه(منظورم host است) اون پیغام عجیب دیده میشه
میتونم حدس بزنم مشکلت چیه :wise1:
چون خودم وقتی اولین Application نوشته شده با دلفی دات نت ام رو به سایتم آپلود کردم این مشکلات عجیب رو دیدم.
و اما مشکل چیه و راه حل چیه؟

مشکل و منبع آن:
مشکل از اینجا ناشی میشود که بورلند در Delphi.Net ابداعاتی کرده که در Microsoft .Net Framework استاندارد نیست، مثلا افزودن Borland Data Providers (یا همان BDP) و استفاده پیش فرض از آنها بجای معادلهای مایکروسافتی مانند SQLDataAdapter و ... .
این افزونه ها قطعا در اسمبلی هایی قرار دارند که بعلت شخص ثالث محسوب شدن بورلند در توسعه تکنولوژیMicrosoft .Net Framework نسبت به مایکروسافت، بصورت پیش فرض توسط نصاب دات نت نصب نمیشوند و بنابراین در سرور مقصد وجود ندارند، اما هنگام نصب دلفی 2005 در سیستم و سرور محلی شما نصب میشوند.

بهمین دلیل است که Web Application های شما در سرور محلی که دلفی 2005 بر روی آن نصب شده درست کار میکند، اما بر روی وب سرور شما درست کار نمیکند، بعبارت بهتر: عدم وجود اسمبلی های بورلند در سرور مقصد.

راه حل:
در فایل Web.Config پروژه تان در حدود خط 36 چنین تنظیمی دارید:

&lt;customErrors
mode="RemoteOnly"
/>
آنرا بصورت زیر تغییر دهید:

&lt;customErrors
mode="Off"
/>
اینجاست که اشکالات پنهان چهره نمایان میکنند. و اشکالاتی که خواهید دید از این یک شرط خارج نیست: "فلان فایل Assembly یا کتابخانه موجود نیست!". اما خوبی این وضعیت اینست که شما در هر بار که یکی از Dll های لازم را یافته و به فولدر Bin در محل فولدر برنامه در سرور آپلود میکنید کمبود یک Dll دیگر اعلام میشود، و بدین ترتیب بعد از چند بار آپلود کمبودها دیگر مشکل برطرف میشود. اکنون شما لیستی از Dll های اضافی که میبایست در فولدر Bin برنامه هایتان آپلود کنید خواهید داشت و از دفعه دیگر آنها را نیز بهمراه برنامه تان آپلود خواهید کرد.

نکته:
برای اینکه تنظیمات customErrors از این ببعد در برنامه های بعدی تان مطابق آنچه که صحیح است قرار داشته باشد میتوانید این تنظیم را نیز در همان فایل Web.Config فوق اعمال کنید.

saeed_82
پنج شنبه 26 آذر 1383, 08:51 صبح
ممنون از اینکه بنده را راهنمایی کردید
جالب این است که بنده وقتی این برنامه رو با دلفی 8 نوشته و آپلود کرده بودم درست حالتی بود که میتوانستم کمبود فایلهای انتقالی را در پیغام خطا ببینم ولی این تنظیمات پیش فرض جدید برای web.config در دلفی 2005 نسبت به نسخه دلفی 8 تغییر کرده و احتمالا این کارها برای بالاتر بردن امنبیت برنامه ها ایجاد شده.
بنده واقعا از همکاری شما آقای کرامتی متشکرم
امیدوارم مشکل بنده با این راهنمایی حضرتعالی برطرف گردد.

toxi
دوشنبه 12 بهمن 1383, 00:46 صبح
سلام
اول از همه از آقای DelphiAssistant گلایه دارم که چرا اطلاعات قلط به دوستمون می دن.
عزیزم.
اول که dot net framework انقدر سواد داره که اگه یه اسمبلی یا لایبری پیدا نشد بگه (- are u missing a assembly or libary ? ) . دوما اگه دوست داری از اسمبلی هایی که برنامت بهشون Refrence داره و باید همراه با برنامت Upload بشن مطلع بشی برو سراغ Deployment Manager که مو به مو همه چیزو بهت می گه که کدوم اسمبی واسه چی و کجا باید با برنامت بفرسیتی بالا.
ضمنا جناب DelphiAssistant شما از روی کدوم منبع و ماخذ میگین که دلفی بطور پیشفرض ( اصلا منظورتون از پیش فرض چیه ؟ پیش فرضی وجود نداره ..دسته شما باز هست که از BDP.NET استفاده کنید یا نه ) از BDP.NET استفاده می کنه ؟

Bahmany
یک شنبه 10 دی 1385, 17:59 عصر
اینجاست که اشکالات پنهان چهره نمایان میکنند. و اشکالاتی که خواهید دید از این یک شرط خارج نیست: "فلان فایل Assembly یا کتابخانه موجود نیست!". اما خوبی این وضعیت اینست که شما در هر بار که یکی از Dll های لازم را یافته و به فولدر Bin در محل فولدر برنامه در سرور آپلود میکنید کمبود یک Dll دیگر اعلام میشود، و بدین ترتیب بعد از چند بار آپلود کمبودها دیگر مشکل برطرف میشود. اکنون شما لیستی از Dll های اضافی که میبایست در فولدر Bin برنامه هایتان آپلود کنید خواهید داشت و از دفعه دیگر آنها را نیز بهمراه برنامه تان آپلود خواهید کرد.


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

googoole
شنبه 16 دی 1385, 18:23 عصر
وقتی وب سایت رو روی سیستم خودم استفاده می کنم ولی روی سرور ارور میده اگه کسی می دونه این error مسخره چیه به من بگه :

www.Milan-Afzar.com (http://www.Milan-Afzar.com)
یک سری به این سایت بزنید توی قسمت وسط متن ارور رو ببینید و اگر کسی می دونه ابزار کپی کردن راحت سایت بدون کپی و پیست کردن و کپی کردن دی ال ال ها دستی راه بهتری دلفی داره لطفا بگین ما رو از این بلاتکلیفی نجات بدین .
ما خواستیم این دلفی دات نت رو تجربه کنیم توش موندیم . :-) :لبخند:

hamed_gm
پنج شنبه 03 بهمن 1387, 17:59 عصر
سلام
من delphi prism رو نصب کردم.سایتی که طراحی میکنم رو سیستم خودم کار میکنه ولی روی سرور اینترنت فکر کنم همین eror که دوستان در بالا توضیح دادن رو میده ولی هر کاری که گفته بودن رو انجام دادم ولی بازم نشد!
اگه میشه یه نگاهی به سایت بندازید و کمکم کنید
www.simafoam.com