PDA

View Full Version : سوال: Failed to generate a user instance of SQL Server due to failure in retrieving the user's local appli



mehdi99
شنبه 21 آذر 1388, 20:08 عصر
برنامه ساده Login دارم که از دیتابیس aspnetdb.mdf در App_Data استفاده می کنه
برنامه ای من روی کامپیوتر خودم درست کار می کند. ولی وقتی که روی سرور می گذارم
ٍError:
Failed to generate a user instance of SQL Server due to failure in retrieving the user's local application data path. Please make sure the user has a local user profile on the computer. The connection will be closed.
با استفاده از Visual Studio 2005 و Net Framework 2.0 و Sql Server Express 2005
در ضمن من App_Data را به همان صورتی که روی کامپیوتر خودم است روی سرور کپی می کنم.

ConnectionString تنظیمات
<add name="LocalSqlServer" connectionString="Server=.\SQLExpress;AttachDBFile name=|DataDirectory|aspnetdb.mdf;Persist Security Info=True;Trusted_Connection=Yes;Integrated Security=SSPI;User Instance=True;"/>
با این تنظیمات روی سیستم من کار می کنه
ولی روی سرور خیر.
فکر کنم روی سرور IIS7 است. ولی دسترسی به تنظیمات IIS ندارم روی سرور
ندارم
فقط یک نکته که من دیتابیس aspnetdb.mdf و aspnetdb.ldf خود را که در فولدر App_Data هست را مانند دیگر فایل ها بر روی سایت Upload می کنم. شاید فایل های دیتابیس را باید بر روی سرور پرواز کنند :لبخندساده: .این روش Upload فایل های دیتابیس روی سرور درست است دیگه یا باید کاره دیگری انجام بدم؟
پشتیبانی سرور به من می گوید که مشکل از برنامه من است ولی برنامه ی من روی سیستم خودم کار می کنه و حتی روی یک سرور مجانی هم اجرا کردم بدون مشکل.
2 تا عکس هم ضمیمه کردم به نظر دوستان تنظیمات من اشتباه هست؟ من که فکر نمی کنم چون اگر بود روی کامپیوتر خودم هم خطا می داد. این خطا فقط روی سرور رخ می دهد.
لطفا راهنمایی کنید؟
مرسی

AminSobati
شنبه 21 آذر 1388, 23:56 عصر
امیدوارم این کمک کنه:

http://social.msdn.microsoft.com/Forums/en/sqldatabaseengine/thread/fbf32aa8-2125-4919-be81-3baa399e2e0d

mehdi99
یک شنبه 22 آذر 1388, 01:14 صبح
سلام امین جان ، ممنون از لینکی که به من دادی. ولی من تمام این تاپیک ها راجع به این خطا خوندم ولی مشکل من هنوز هست.
توی یک سایت توضیح خوبی داده - ولی من دسترسی به SqlServer روی سرور ندارم. روی کامپیوتر خودم هم یعنی Local که کار می کنه.
روی سرور چگونه مراحل زیر را اجرا کنم؟
چگونه SP رو اجرا کنم ویا برم و فولدر SQLEXPRESS را پاک کنم؟
پشتیبانی سرور هم متاسفانه هیچ کمکی نمی کنن و می گن که اگر سرور ما مشکل داره باید برای بقیه هم مشکل ایجاد می شد. خوب شاید فقط هاست من خراب شده یا تنظیم درستی انجام ندادن؟ نمی دانم!
من راه حلی به نظرم نمی رسه بعد از 2 هفته پیگیری. متاسفانه چون خارج از ایران هم هستم نمی تونم تلفنی با هاست تماس بگیرم و صحبت کنم.
اگه کسی راه حلی به نظرش می رسه بگه . و من را راحت کنه.:ناراحت:
http://www.aspdotnetfaq.com/Faq/fix-error-Failed-to-generate-a-user-instance-of-SQL-Server-due-to-a-failure-in-starting-the-process-for-the-user-instance.aspx
Step 1. Enabling User Instances on your SQL Server installation
First we are gonna make sure we have enabled User Instances for SQL Server installation.

Go to Query Window in SQL Server Management Studio and type this:

exec sp_configure 'user instances enabled', 1.
Go
Reconfigure

Run this query and then restart the SQL Server.

Step 2. Deleting old files
Now we need to delete any old User Instances.
Go to your C drive and find and completely DELETE this path (and all files inside):

C:\Documents and Settings\YOUR_USERNAME\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS

(Dont forget to replace the green text in the path with your current username (if you are not sure just go to C:\Documents and Settings\ path to figure it out).

After deleting this dir you can go to Visual Studio, create ASP.NET WebSite and click on your App_Data folder and choose Add New Item and then choose SQL Server Database and it should work!!!

afrooz_rahmati63@yahoo.com
یک شنبه 22 آذر 1388, 08:05 صبح
سلام.من هم تا هفته گذشته این مشکل را داشتم اما مشکل من با Attach کردن فایل aspdb روی sql server سمت سرور حل شد و تنها دلیل هم استفاده از web part در برنامم بود ،بهتره که web.config را اینجا کپی کنین تا بهتر بشه مشکل را حل کرد.

mehdi99
یک شنبه 22 آذر 1388, 20:45 عصر
این هم فایل Web.config البته مطمئن هستم که درست است. چون روی یک هاست دیگه داره همین برنامه کار می کنه البته هاست مجانی. مشکل من هم همینجاست
چون نمی تونم فایل DB رو روی هاست Attach کنم. قسمتی برای Attach ندارد.





<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->ASP.NET Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
<appSettings/>
<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Server=.\SQLExpress;AttachDBFilename=|DataDirector y|aspnetdb.mdf;Trusted_Connection=Yes;Integrated Security=True;User Instance=True;"/>
</connectionStrings>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<authentication mode="Forms" />
<identity impersonate="true"/>

<customErrors mode="On" defaultRedirect="~/Error.aspx" />
<compilation debug="true"/>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">

</customErrors>
-->

</system.web>
</configuration>

afrooz_rahmati63@yahoo.com
دوشنبه 23 آذر 1388, 10:34 صبح
مگر می شه نشه که فایل را به db اجازه Add نده ، شما attach نمی تونی بکنی ولی حتما script که را می تونی load کنی؟ مگر اینکه هاست را کلا بدون sql گرفته باشین كه خوب شما در کدتون از sql استفاده کردین پس بایستی سکوال را هم خریداری کنین. بعد از بار كردن دیتابیستون هم بایستی
<add name="LocalSqlServer" connectionString="Server=.\SQLExpress;AttachDBFilename=|DataDirector y|aspnetdb.mdf;Trusted_Connection=Yes;Integrated Security=True;User Instance=True;"/>

این خط کد را با توجه به سرور تغییر بدین.

mehdi99
دوشنبه 23 آذر 1388, 18:21 عصر
سلام دوست عزیز
من هاست رو با SQL Server خریدم.
ولی توی پنل هاست قسمت Import کردن Database نداره. و فقط اجازه اجرای Query داری.
فکر کنم یک هاست بی خود باشه .

اگه هاست دیگری کسی سراغ داره که استفاده کرده و خریده و خوب بوده به من هم بگه.
راستی فرق ConnectionString من که در تنظیمات web.config نوشتم و پست بالا فرستادم با شما چیه؟

کدشما:

<add name="LocalSqlServer" connectionString="Server=.\SQLExpress;AttachDBFilename=|DataDirector y|aspnetdb.mdf;Trusted_Connection=Yes;Integrated Security=True;User Instance=True;"/>

کد من:

<add name="LocalSqlServer" connectionString="Server=.\SQLExpress;AttachDBFilename=|DataDirector y|aspnetdb.mdf;Trusted_Connection=Yes;Integrated Security=True;User Instance=True;"/>

afrooz_rahmati63@yahoo.com
دوشنبه 23 آذر 1388, 19:01 عصر
خوب این هاستی که گرفتین Query را همین طور که خودتون می گید اجرا می کنه..شما هم برید توی sql server then right click,after u will see one option 'all task',select all tasks then on the right side select genereate sql script , و بقیه مراحل را هم بخونی متوجه می شوید بعد از آن یک script به شما می دهد که اگر این script را در هاست خودتان کپی کنید و run کنید دیتابیس شما ساخته می شود.

راستی فرق ConnectionString من که در تنظیمات web.config نوشتم و پست بالا فرستادم با شما چیه؟

من فقط کد شما را کپی کردم و منظورم اینه که مشکل از این خط کد هست که به sql وصل می شید و بعد از اجرای query بایستی آن را طبق ip سرور تغییر بدهید.

mehdi99
سه شنبه 24 آذر 1388, 04:26 صبح
چگونه می شود از SqlServer کامپیوتر خود به SqlServer روی هاست وصل شد؟
یعنی این تنظیمات عکس ضمیمه