PDA

View Full Version : مشکل با ASP.NET Administration



CodeMasterX
سه شنبه 19 تیر 1386, 00:47 صبح
قبلا این مشکل برام پیش اومده بود و حلش کرده بودم ولی خیلی وقته که روی پروژه های وب کار نکردم.حالا لطف کنید راهنمایی کنید :

برای طراحی و تولید پروژه ها از دات نت 2.0 و Visual Web Developer استفاده می کنم، فقط مشکل اینجاست که از SQLServer2005 استفاده نمی کنم.نسخه 2000 روی سیستم نصب هست و وقتی میخوام به قسمت Administration برم تا برای سایت مثلا چند تا Role تعریف کنم میگه که Provider بانک رو نمیتونه پیدا کنه.با ابزار aspnet_regsql هم یه بانک جدید توی SQLServer2000 ساختم که اسم پیش فرضش aspnetdb هست.حالا وقتی که باز به صفحه مدیریت ASP.NET میرم و میخوام تامین کننده داده رو انتخاب کنم دو تا گزینه بهم میده که برای تمام پروژه ها یک منبع داده تعیین کنم یا برای هر پروژه یک منبع داده مجزا قرار بدم.حالا گزینه اول رو که انتخاب می کنم میگه تامین کننده داده فعلی شما روی AspNetSqlProvider تنظیم شده.هیچ گزینه ای برای تعیین منبع جدید ندارم و وقتی روی همین گزینه هم تست می کنم میگه هیچ ارتباطی با بانک برقرار نمیشه.

مشکل کجاست ؟ چجوری می تونم بانک جدید که توی SQLServer2000 ساختم رو به عنوان بانک ذخیره تنظیمات ASPNet قرار بدم ؟
لطف کنید هرچه زودتر جواب بدید که کار خیلی گیره.

سپاس.

babi_wd
سه شنبه 19 تیر 1386, 01:55 صبح
به همراه VS باید Sql Express رو هم نصب کنید تا اون پیغام رو نگیرید
در مورد دوم هم اگه صفحات 2 یا 3 انجمن رو ببینید به طور خلاصه اشاره شده.من بلد نیستم

CodeMasterX
سه شنبه 19 تیر 1386, 03:43 صبح
با عرض پوزش، ولی اگه بلد نیستید پس چرا پست میدید ؟
مشکلی با SqlExpress2005 نیست، اگه دقت کنید من گفتم که با SQLServer2000 کار می کنم و میخوام بانک تنظیمات ASP.net رو به این نسخه انتقال بدم.

CodeMasterX
سه شنبه 19 تیر 1386, 04:21 صبح
بالاخره راه حل رو خودم پیدا کردم ، خدا اجر بده این اینترنت رو :گیج:.
ولی از اونجا که همچین سوال یا پاسخ مستقیمی به این سوال تو این بخش پیدا نکردم جواب رو کامل توضیح میدم.

ASP.NET برای هر کدوم از قابلیت هاش میتونه منبع یا منابع داده مختلفی داشته باشه. برای مثال Roles,Membership و غیره.این داده های میتونن تو بانک SQLServer و یا بانک مورد نظر کاربر و یا ActiveDirectory ذخیره بشن.اگر شما همراه با دات نت 2 نرم افزار SQlServer2005Express رو هم نصب کرده باشید قاعدتا نباید مشکلی داشته باشید.اما اگر نسخه دیتابیس شما مثلا 2000 باشه یا شما اسم دیتابیس رو چیزی غیر از نام پیش فرض مایکروسافت (aspnetdb) تعیین کرده باشید باید یه سری تغییرات انجام بدین.

اینجا فرض می کنیم شما Sql2005Express رو نصب نکردین و نسخه 2000 رو تازه نصب کردین و اصلا هیچ دیتابیسی برای داده های ASP.NET در نظر نگرفتین.همراه با دات نت یک ابزاری نصب میشه به اسم aspnet_regsql.exe که میتونید بصورت Command-line یا بصورت گرافیکی ازش استفاده کنید.اینجا فرض بر این هست که شما نسخه 2 از دات نت رو نصب کردین.مراحل زیر رو دنبال کنید.


به پوشه C:\Windows\Microsoft.Net\Framework\v2.0.50727 برین.
ابزار aspnet_regsql.exe رو پیدا کنید و اجراش کنید.
یک Wizard اجرا میشه که میتونید با استفاده از اون دیتابیس جدیدی برای داده ها بسازین یا دیتابیس موجود رو حذف-مدیریت کنید.وقتی که جادوگر اجرا شد دکمه Next رو کلیک کنید.گزینه اول رو انتخاب کنید بدین معنا که قصد ساختن یا تنظیم کردن دیتابیس رو دارید و دکمه Next رو کلیک کنید.تو صفحه بعدی نام سرور Sql رو وارد کنید، طریقه اتصال (Win-SqlServer) رو انتخاب کنید و نام دیتابیس رو به همون <default> رها کنید (aspnetdb) و دکمه Next رو کلیک کنید.در صفحه بعد باز دکمه Next رو کلیک کنید تا اسکریپتی اجرا بشه که دیتابیس رو برای شما ایجاد می کنه.

حالا که دیتابیس اجرا شد به EnterpriseManager برید و ببینید که دیتابیس ایجاد شده یا نه.
حالا دیتابیس ایجاد شده ولی هنوز باید تغییراتی ایجاد کنید.ASP.NET برای هر کدوم از داده هاش یک تامین کننده داده مجزا داره، برای مثال AspNetSqlProvider که تامین کننده داده های SqlServer هست.هر کدوم از این تامین کننده ها یک رشته اتصال بخصوص رو در فایل machine.config نگهداری می کنند.کاری که شما تو این مرحله باید انجام بدین تغییر دادن منبع داده و نام سرور (و تنظیمات دلخواه دیگر) هست.
فایل machine.config رو با ویژوال استودیو دات نت یا VisualWebDeveloper یا ابزار ویرایش متن مثل Notepad باز کنید.دو گزینه اول توصیه می شوند چون داده های این فایل زیاد هستند و پیدا کردن مقادیر مورد نظر در برنامه های ویرایش متن ساده مشکل است.از توضیحات اضافی صرفنظر می کنم و یک راست میرم سر اصل مطلب.با زدن دکمه های ترکیبی Ctrl + F پنجره جستجو رو باز کنید و کلمه Local رو تو سند فعلی جستجو کنید.چند تا مورد تو فایل فعلی پیدا خواهید کرد که شامل کلمه LocalDataSource هستند.این کلمه رو با نام سرور SqlServer نصب شده روی سیستمتون تغییر بدین.برای مثال :



LocalDataSource = MSSQL


از اونجا که می دونیم داده ها و تنظیمات موجود در فایل Machine.Config برای تمام پروژه ها و وب سایت های موجود روی سرور (اینجا کامپیوتر محلی) اعمال میشه، از این به بعد تمام تامین کننده های داده های ASP.NET به سرور تعیین شده رجوع خواهند کرد.

دو نکته :

1- شما می تونید برای هر داده ای یک منبع داده مجزا داشته باشید.ممکن هست بخواید برای امنیت بیشتر یا دلایلی دیگه مثلا برای Role ها از یک سرور دیتابیس و برای Membership ها از یک دیتابیس دیگه استفاده کنید.
2- فایل Machine.Config در پوشه CONFIG قرار گرفته که خود این پوشه در محل فایل ها و مستندات دات نت که در بالا ذکر شد قرار داره.

موفق و موید باشید.

merychobi
دوشنبه 17 دی 1386, 16:07 عصر
من این کار را انجام میدم ولی زمانی که میخواهد اطلاعات را در دیتا بیس بریزد این پیغام را میدهد


A user instance was requested in the connection string but the server specified does not support this option.
Changed database context to 'master'.
Changed language setting to us_english.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: A user instance was requested in the connection string but the server specified does not support this option.
Changed database context to 'master'.
Changed language setting to us_english.

merychobi
سه شنبه 18 دی 1386, 14:29 عصر
مشکل حل شد.