-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
The 'this' object cannot be used before all of its fields are assigned to
علت :
هنگامی که از struct استفاده میکنید برای دستیابی به property های آن در متدی از این struct باید از this(): بعد از نام متد استفاده کنید. در صورتی که از this() استفاده نکنید با خطای بالا مواجه خواهید شد. this() مقدار constructor پیش فرض را صدا زده و تمامی فیلد ها را initialize میکند.
struct UserActivityObject
{
internal UserActivityObject(string userName , long time)
: this()
{
Username=userName;
}
public String Username
{
get;
private set;
}
راهکار :
استفاده از this()
منابع بیشتر :
دلیل استفاده از this () :
http://stackoverflow.com/questions/2...roperties-in-c
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
The connection was not closed. The connection's current state is open
علت :
شما میخواهید به طور مجدد از connection ی استفاده کنید که هنوز باز است و close نشده است.
راهکار :
به کد هاتون دقت کنید. close رو در بلوک finally قرار بدهید نه در مثلا catch ,.... و خلاصه connection رو close() کنید.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
...There is no row at position
علت :
وقتی این خطا رخ میدهد که شما در یک گرید یا datatable و...روی سطری عملی انجام میدهید که این سطر وجود ندارد.
مثلا گرید 10 سطر دارد در حالی که شما مقدار سطر 11 را میخواهید چاپ کنید.
راهکار :
توجه به علت بیان شده.
منابع بیشتر :
http://forums.asp.net/p/1524889/3675372.aspx
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Server Error in '/' Application
Error message: authentication mode="Forms"
Regel 18: <authentication mode="Windows"> section. -->
Regel 19:
Regel 20: <authentication mode="Forms">
Regel 21: <forms name=".ASPXAUTH" protection="All" timeout="60" />
Regel 22: </authentication>
علت و راه حل به نقل از علیرضا مداح و Hossein Bazyan :
چون پروژه شما در Root Folder قرار نگرفته است، فایل web.config پروژه شما هم به عنوان یک nested web config در نظر گرفته خواهد شد و طبیعتا" یکسری از element ها همچون <authentication /> در آن قابل استفاده نیست، برای حل این مشکل یا وب سایت خود را به Root Folder منتقل کنید یا اینکه به داخل کنترل پنل وب سایت خود رفته و در تنظیمات مربوط به آن، یک Virtual Directory برای Application ایجاد نمایید،
به طور مثال در کنترل پنل Helm:
http://www.ihostASP.NET/HelmOverview...y_01_thumb.jpg
Virtual directories are critical for ASP/ASP.NET developers. They allow multiple ASP/ASP.NET applications to co-exist by creating virtual application roots where each application can have it's own global.asa/global.asax files. There are many other useful functions that can be accomplished by using virtual directories.
---------------------------------
با ساختن Virtual Directory مشکلشان رو میتونند حل کنند. در این حالت هاست این شاخه رو بعنوان شاخه ریشه میشناسد.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Row Handle is Invalid
علت و راهکار :
دلیل این خطا این است که شما مثلا با DataReader میخواهید روی سطری کار کنید که اصلا وجود ندارد ... یعنی برای مثال جمله Select چیزی در datareader نریخته باشد و شما به خیال اینکه در datareader چیزی هست میخواهید آنرا بخوانید .
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Server Application Unavailable
علت اول به نقل از مهدی موسوی(من عین عبارت را مینویسم) :
این مساله دلائل فراوانی میتونه داشته باشه، اما در مورد من داستان از این قرار بودش:
من چند تا Web Application متفاوت روی Server داشتم، که یکی از اونها با .NET Framework 1.1 نوشته شده بود و مابقی .NET 2.0 بودن. WebApp نوشته شده در .NET 1.1 از همون Application Pool ای استفاده میکرد که WebApp نوشته شده در .NET 2.0. و این مساله باعث میشد تا IIS نتونه Assembly های متناسب با نسخه مورد نظر رو Load کنه، و در نتیجه اون پیام رو هر از گاهی میگرفتم.
برای حل مساله، Application Pool جدیدی برای WebApp نوشته شده در .NET 1.1 ساختم، و اونو به این WebApp اختصاص دادم. حالا هر کدوم از Application ها، از App Pool خودشون استفاده میکردن و دیگه این مشکل رخ ندادش.
علت دوم :
این علت مربوط به باگی است که با توجه به ورژن دات نت و نوع ویندوز رخ میدهد..این خطا معمولا در دات نت 1 و ویندوز xp رخ میدهد. در زیر توصیحاتی جدولی آماده شده است :
.NET Framework Version Operating System Affected
1.0 Windows 2000 Professional No
1.0 Windows 2000 Server No
1.0 Windows XP Professional Yes
1.0 Windows Server 2003 No
1.1 Windows 2000 Professional No
1.1 Windows 2000 Server No
1.1 Windows XP Professional No
1.1 Windows Server 2003 No
برای اطلاعات بیشتر میتوانید به آدرس زیر مراجعه کنید.
http://support.microsoft.com/kb/827641
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Data source name not found and no default driver specified
علت :
در اتصال به بانک وقتی Connection string نادرستی رو وارد کرده باشید یعنی نام دیتابیس شما اشتباه باشه و یا آدرس دیتابیس اشتباه باشه و کلا مقداری در کانکشن استرینگ وارد کرده باشید که موجود نباشه با خطای بالا مواجه میشید.
برای مثال فرمت صحیح برای اکسس باید به صورت زیر باشه :
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;
یا
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Jet OLEDB:Database Password=MyDbPassword;
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccess2007file.accdb;Pers ist Security Info=False;
راهکار :
وارد کردن کانکشن استرینگ صحیح.
مراجعه به سایت :
http://www.connectionstrings.com/
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Invalid attempt to read when no data is present.
علت :
در صورتیکه datareader قصد خواندن مقداری را داشته باشدکه وجود نداشته باشد با این خطا برخورد خواهید کرد.
مثال :
reader["FutureSend"].ToString()
در کد بالا اگر فیلد FutureSend موجود نباشد اما شما با DataReader قصد خواندن آن را داشته باشید با خطای بالا روبرو میشوید.
راهکار :
توجه به توضیحات
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
The directory '/App_Code/' is not allowed because the application is precompile
علت و راهکار :
علت این خطا این است که شما وب سایت خودتان را publish کردید. در این حالت فولدر App_code اجازه ندارد که در فولدر محتویات سایت کپی شود و به جای appcode باید فولدر bin را به جای App_Code قرار بدید.
همچنین میتونید فایل PrecompiledApp.config رو remove کنید.
راه حل نهایی این است که وب سایت خود را دوباره publish کنید و تمامی فایل های حاصل از آن را در هاست کپی کنید.
اطلاعات تکمیلی :
http://forums.ASP.NET/t/1054626.aspx
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Both DataSource and DataSourceID are defined on 'نام گریدویو'. Remove one definition.
علت :
1: وقتی شما گرید یا repeater یا هر دیتا کنترل دیگری را یکبار با sqldatasource بایند کرده باشید و دوباره بخواهید آن را در همان پروسه به مثلا dataset یا datareader بایند کنید با خطای بالا مواجه میشوید.
2: شما نمی تونید همزمان هم مقدار sqlDataSource و هم مقدار SqlDataSourceID رو مشخص کنید. اگه در design دیتاسورس رو برای GridView تعیین می کنید، SqlDataSourceID مقدار دهی می شه.
راهکار :
یک بار در یک پروسه مثل لود صفحه دیتا کنترل خودتان را بایند کنید. در عیر اینصورت به خطای بالا برخورد میکنید.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
'نام کلاس' is a 'type', which is not valid in the given context
علت و راهکار :
وقتی از یک کلاس به درستی Instance نگیریم و در هر صورتی از یک کلاس به مثابه یک نوع یا type استفاده نشود با این خطا برخورد خواهیم کرد.
مثال :
System.NullReferenceException =new NullReferenceException();
در این مثال ما در حالت نمونه گیری از یک کلاس درست عمل نکردیم و همانطور که میبینید نامی برای نمونه ایجاد شده در نظر نگرفته ایم.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
is a 'Type' but is used like a 'Variable' نام کلاس
علت :
در صورتیکه از یک کلاس به اشتباه مانند یه متغیر یا متد استفاده شود با خطاهای بالا مواجه خواهیم شد.
راهکار :
از کلاس به درستی استفاده کنید!
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Is a method but is used like a type نام متد
در صورتیکه از یک متد به اشتباه مانند یک کلاس استفاده شود این خطا ایجاد خواهد شد.
مثال (البته این مثال استثنائا در حالت کنسولی است) :
namespace Ctest
{
class Program
{
static void Main(string[] args)
{
starmenu newMenu = new Ctest.Program.startmenu();
}
public int starmenu()
{
int choose = 0;
do
{
Console.WriteLine("1 – Option 1");
Console.WriteLine("2 – Option 2");
Console.WriteLine("3 – Option 3");
Console.WriteLine("");
string input = Console.ReadLine();
choose = Convert.ToInt32(input);
Console.WriteLine("**** " + choose + " ****");
} while (choose != 1 && choose != 2 && choose != 3);
return choose;
}
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا:
Microsoft JScript runtime error: 'Sys' is undefined
علت :
این خطا به علت تنظیمات اشتباه web.config میباشد.
راهکار :
تنظیمات زیر را برای وب کانفیگ اضافه و یا paste کنید.
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFact ory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFact ory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
اطلاعات کامل :
http://forums.ASP.NET/p/1030457/1412857.aspx
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
HttpException (0x80004005): Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.]
علت :
http://forums.asp.net/p/955145/1173230.aspx#1173230
راهکار:
در فایل web.config خط زیر را وارد نمایید.
<system.web>
<pages enableViewStateMac="false" />
</system.web>
البته در لینک زیر دوستان گفته بودن مقدار زیر رو وارد کنیم. به هر حال با وارد کردن مقدار بالا مشکل حل میشه اما من راهکار دوستان رو هم قرار میدم:
https://barnamenevis.org/showthread.php?t=235452
<machineKey validationKey="FBF509141F22D6A3B2359A593F24C41AB87 5DE7DE122EF17" decryptionKey="A1742572A487D94018787EF42682B202B12 3451891C1BAF4" validation="SHA1" decryption="AES"/>
در نهایت پنجره مرورگر خود را بسته و یکبار دیگر باز نمایید.مشکل برطرف خواهد شد.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
باگی که باعث بروز خطای زیر میشود:
ISessionIDManager.InitializeRequest has not been called for this request yet. In each request, please first call ISessionIDManager.InitializeRequest before calling other methods.
این یک باگ هست که توضیحات اون به همراه راه حل در زیر آمده است .
I always experience this problem when working with flash remoting. Disabling session state for the application seems to fix the problem, but that workaround is useful only if you don't require session state, so this seems to be related to session state.
On my latest project with flash remoting I do require session state, so this error is very irritating and difficult to figure out.
In the system event long, shortly before this error I see a message like "A worker process with process id of '2500' serving application pool 'DefaultAppPool' was shutdown due to inactivity. Application Pool timeout configuration was set to 20 minutes. A new worker process will be started when needed."
The strange thing is... the first request doesn't fail... the second one does. For example, the post to log in goes through successfully, but the post that immediately follows it causes the described error.
Posted by Triynko on 10/14/2009 at 7:14 AM
I also found this on another forum:
"Hi,
I don't know if you found a workaround, on my side I overrided the
default SessionIDManager and It fixes it.
You can use the following code :
public class CustomIDSessionManager:SessionIDManager
{
public override string CreateSessionID(System.Web.HttpContext
context)
{
return Guid.NewGuid().ToString();
}
public override bool Validate(string id)
{
try
{
Guid testGuid = new Guid(id);
if (id == testGuid.ToString())
return true;
}
catch
{
}
return false;
}
}
And make the correct configuration in the web.config file.
Maybe the default validate uses a none-threadsafe function ?..."
Posted by Triynko on 10/14/2009 at 2:02 PM
HAHA! I finally fixed it after all these years!
In the Application_PreRequestHandlerExecute method of FlashGateway.Controller.GatewayController:IHttpMod ule, it calls context.Items.Clear() on the HttpContext object, which inadvertently removes two ASP.NET session variables along with the two flash-remoting-related variables.
The workaround is to get rid of the Items.Clear call (assuming you've reverse engineered the source code like I have for customization and cutting out the irritating licensing module), and replace it with calls to Items.Remove for the following items:
"flash.result" {FlashGateway.IO.ASObject}
"flash.parameters" {System.Collections.ArrayList}
Doing so preserves these items:
"AspSessionIDManagerInitializeRequestCalled" (true)
"AspSession" {System.Web.SessionState.HttpSessionState}
By preserving those items, when HttpApplication.CompleteRequest is called and execution jumps to the EndRequest method, the System.Web.SessionState.SessionIDManager.CheckInit ializeRequestCalled method (called from the SessionIDManager.GetSessionID method and a few others up the stack) won't bomb when it sees that the "AspSessionIDManagerInitializeRequestCalled" item is no where to be found.
The previously posted work around using a custom session id manager only shows the Validate and CreateSessionID methods being overriden, but given what I've learned, it will only solve the problem if the GetSessionID method is overridden a well.
It's about time!
P.S. (always use application.CompleteRequest rather than response.End to avoid thread abort exceptions)
منبع :
http://www.barnamenevis.org/sh...d.php?t=227641
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Server Error in '/' Application.
Using themed css files requires a header control on the page. (e.g. <head runat="server" />).
علت و راهکار به نقل از همین سایت:
شما فایل رو در شاخه App_Themes قرار دادید.اگه اینطوره وارد صفحه و یا مسترپیجی که از اون استفاده کردید بشید و چک کنید که تگ Head ایا runat="server" داره یا نه
<head runat="server" >
_______________________
در مورد این خطا من خودم هم جستجو کردم اما به نتیجه ای نرسیدم و علتش فقط همینی بود که در بالا ذکر شد.
https://barnamenevis.org/showthread.php?t=236600
http://forums.ASP.NET/p/1555394/3823369.aspx
http://www.telerik.com/community/for...-the-page.aspx
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
به نقل از Engineer_Yasin
خطای Failed to generate user instance در IIS
Failed to generate user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed
حتما خیلی از شما با خطای بالا در IIS برخورد کردید خیلی ها براحتی این مشکل را حل می کنند. تو اینترنت هم بگردی تا دلت بخواد رفع این مشکل وجود داره و همه هم تو IIS 6 گفته شده، و به راحتی این مشکل برای IIS 6 و IIS 5 در ویندوز XP حل میشه.
من 2روز کل سایت ها را گشتم تا این مشکل را حل کنم البته واسه IIS 7 و ویندوز سون
فقط خواستم دیگه شما واسه این مشکل الکی وقت تلف نکنید
این مشکل با تنظیم Load User Profile در process model حل می شه برای اینکار مراحل زیر را دنبال کنید یا به آدرس داده شده بروید.
کد:
On Windows 7 under IIS choose the application pool and select advanced settings. Under process model change "Load User Profile" to yes. It should fix this.
اینم لینک صفحه
واسه رفع این مشکل در ویندوز xp و ویستا و ورژن های دیگه IIS لینک های زیر را پیشنهاد میکنم
MSDN Mirosoft
dotnettogo.com
مرجع:
https://barnamenevis.org/showthread.php?t=180321
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
failed to update database because the database is readOnly
علت و راهکار :
شما باید به هر دو فایل MDF و LDF اجازه read , write رو بدید و همچنین ممکنه در فولدری که این فایل ها موجوده اجازه read & write رو نداشته باشید. این permission ها رو باید بهش بدید.
نهایتا کار های زیر را انجام دهید :
1: مطمئن بشید که فولدر app-data یا هر دایرکتوری که فایل های دیتابیس شما در اون قرار داره روی read-only ست نشده باشه.
2: برای هر روی user های aspnet , NETWORK SERVICE در قسمت permission ها کنترل modify رو تیک بزنید.
3: برای refresh شدن permission ها iisreset رو run کنید .
4: (به نقل از aminghaderi)
شما از SQLExpres خود ویژوال استفاده کردین؟؟ برنامه تحت وب؟!
به نظرم من مشکلتون 99% مربوط به اون می شه ، از دیتاهاتون بکاب بگیرید یا جداولتون رو Detach کنید و یه SqlServer (با ورژنی که داری کارمی کنی 2005 یا 2008) نسخه Enterprise رو روی سرور (همون سیستمی که شبیه سرور درستش کردید) نصب کنید و دیتابیستون رو اونجا Atach کنید ، احتمالا مشکلتون حل خواهد شد.
دقت داشته باشید ، قبل استفاده کلاینت ها سرور باید روشن شده باشه (که معمولا اصلا خاموشش نمی کنند.).
برای اطلاعات بیشتر به لینک زیر مراجعه کنید :
http://forums.ASP.NET/p/889653/941457.aspx
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
The type or namespace name 'HashSet' could not be found (are you missing a using directive or an assembly reference?)
علت و راهکار :
اگر به MSDN رجوع کنید، پایین این صفحه نوشته این کلاس توی .NET 3.5 و 4.0 پشتیبانی میشه. بالای صفحه هم نوشته که این کلاس در فایل System.Core.dll پیاده سازی شده، پس باید مطمئن بشید که Reference به این فایل هم به پروژه شما اضافه شده.
اما نگران نباشید. از اونجاییکه CLR مربوط به .NET 2.0 تا 3.5 یکسان هستش، شما می تونید .NET 3.5 رو نصب کنید، فایل System.Core.dll رو به Reference پروژه خودتون اضافه کنید و از کلاس HashSet موجود بدون نگرانی استفاده کنید.
منبع:
http://www.barnamenevis.org/sh...d.php?p=979547
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
A potentially dangerous Request.Form value was detected from the client (ctl02="<h4>سیشی</h4>").
علت و راهکار :
جهت امنیت در وب سایت دات نت فریم ورک در صفحات ASP.NET مقداری به اسم ValidationRequest داره که در صورتیکه مقدار اون برابر true باشه اجازه رد و بدل تگ رو بین صفحات نمیده و اگر شما این کار رو انجام بدید با خطای بالا روبرو میشید.
اگه حتما مایلید تگ html بین صفحاتتون رد و بدل کنید یا باید html خودتون رو encode کرده و بعد بفرستید و یا بی خیال امنیت در این مقوله خاص بشید.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
"...is inaccessible due to its protection
علت :
این خطا زمانی رخ میدهد که شما از متغیر یا متدی در جایی استفاده میکنید که بخش مورد نظر دسترسی به این متد یا متغیر یا property ندارد.
راهکار :
در این حالت برای رفع خطا با توجه به سطوح امنیتی مورد نظر برای متد یا متغیر یا property اون رو public کنید.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا
An error was encountered. Please return to the previous page and try again
این خطا در هنگام عضویت اگر رخ بده باید :
یک کانکشن استرینگ درست به دیتا بیس membership بدهید تا خطا رفع شود.
منبع :
https://barnamenevis.org/showthread.php?t=247703
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.
احتمالا شما گرید ویوو یا هر چیز دیگه خودتون رو دارید در هنگام page-load بایند (Bind) میکنید. در این حالت چه اتفاقی میافته؟ در این حالت کنترل های شما هر بار در موقع page-load از نو ثبت میشن و این به این معنی هست که Viewstat ما گم میشه. ما کنترلی رو که باعث رویداد POSTBACK شده رو گم کردیم و در این حالت دات نت یک خطا رو نشون میده.
برای رهایی از این مشکل شما باید کاری شبیه کد زیر انتجام بدید.
فرض میکنیم کد های قبلی شما اینطوری بوده :
protected void Page_Load(object sender, EventArgs e) {
GridView1.DataSource = Enumerable.Range(0, 5);
GridView1.DataBind();
}
حالا کد های بالا رو به صورت زیر اجرا کنید
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack){
GridView1.DataSource = Enumerable.Range(0, 5);
GridView1.DataBind();
}
}
اطلاعات بیشتر :
http://weblogs.asp.net/davidfowler/a...acontrols.aspx
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
مسیر فایل Could not find a part of the path
دوست عزیز احتمالا شما مسیر دستی دادین برای اینکار باید از
کد:
Server.MapPath("../../DirectoryB/SubDirA/SubDirA1/")
و به پوشه که می خواهین فایل رو اپلود کنید به اون permission بدید .
اینم یه لینک که امیدوارم به دردتون بخوره
http://www.c-sharpcorner.com/UploadF...8/Default.aspx
مرجع :
https://barnamenevis.org/showthread.php?t=249169
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster
علت :
این خطا حاصل یک باگ در .net framework 2 هستش.
در صورتی به این خطا برخورد خواهید کرد که :
* از SqlDataSource در اون صفحه استفاده کرده باشید
* استفاده از <asp:BoundField> در گرید
*استفاده ازDataKeyNames در GridView
راه کارها:
1:
در فایل web.config خط زیر را وارد نمایید.
<system.web>
<pages enableViewStateMac="false" />
</system.web>
پنجره مرورگر خودتون رو را بسته و یکبار دیگر باز کنید.مشکل برطرف خواهد شد.
2:
ابتدا تگ زیر را به web.config اضافه کنید :
<machineKey validationKey="A96B2F3BF50A1A2A1B81214A550B89F2A31 8B3712FB5AC8CD82AF4F3925B3C6ED58CF5F38503629A78BF8 C27B1B736C4E84DACE342AB83A42932B44EBC3D7601" decryptionKey="D01201C69DF5E9863133028CBD4E6EEFC45 B5E609D7F4107" validation="SHA1" />
سپس تگ pages را به صورت زیر تغییر دهید :
<pages enableViewStateMac="true" enableEventValidation="true" viewStateEncryptionMode="Always">
اطلاعات بیشتر :
http://forums.asp.net/t/955145.aspx
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
"Service not available, closing transmission channel. The server response was: Cannot connect to SMTP server ["آی پی و پورت"]209.85.129.111 (209.85.129.111:25), connect error 10051" System.Exception {System.Net.Mail.SmtpException}
این خطا در هر حالتی به این دلیل رخ میده که سرویس smtp شما غیر فعال باشه و یا IP و پورت ایمیل سرور شما اشتباه وارد شده باشه. آخرین احتمال اینه که چیزی مثل FireWall یا آنتی ویروس در سیستمتون باشه که پورت و یا دسترسی به اون IP رو مسدود کرده باشه.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Invalid value for key 'integrated security'
علت و راهکار :
connection string خودتون رو چک کنید . integrated security باید برابر یکی از مقادیر زیر باشه.
Integrated Security=SSPI;
Integrated Security=true;
همچنین مقدار Integrated Security=SSPI; برابر با مقدار "Trusted_Connection=yes" هست و میتونن جای هم به کار برن.
نهایتا به وب سایت
www.connectionstrings.com مراجعه کنید. مشکلتون حتما حل میشه.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
A connection was successfully established with the server, but then an error occurred during the pre-login handshake
یکی از کارهای زیر را انجام بدید:
1: در connection string مقدار connect timeout رو افزایش بدید.
2: کلیه Named Pipes , TCP/IP , VIA ها رو enable کنید.
3: در کانکشن استرینگ pooling = false قرار بدید.
4: اجازه دسترسی از راه دور وجود ندارد!" در نتیجه باید تنظیمات SQL Server را بررسی و برای یک یوزر خاص تاییده های مورد نظر را صادر کنید.
5: فایر وال یا آنتی ویروس خودتون رو چک کنید که اجازه remote only رو داده باشه.
6: در صورتی که هیچ کدامشان جواب نداد باید با sql profiler ببینید که کدام یک از عملگرها ی کلاینت باعث قطع اتصال با دیتابیس میشود و همچنین server errorlog یا application event رو چک کنید تا گره کارتون رو پیدا کنید.
مطالعه بیشتر :
http://social.msdn.microsoft.com/for...-15eebbb439cd/
http://forums.asp.net/p/1177161/1985326.aspx
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
"Sys.WebForms.PageRequestManagerServerErrorExcepti on: An unknown error occurred while processing the request on the server. The status code returned from the server was: 500"
این خطا وقتی رخ میده که اولا شما از آپدیت پنل استفاده کنید و در عین حال validationRequest صفحه شما true باشه.
راهکارهای زیر رو امتحان کنید :
1: validationRequest رو برابر false قرار بدید
2: <asp:UpdatePanel UpdateMode="Conditional" ID="CenterContentPanel" runat="server" RenderMode="Inline">
رو با
<asp:UpdatePanel UpdateMode="Always" ID="CenterContentPanel" runat="server" RenderMode="Inline">
عوض کنید
اگه مورد دیگه ای هم بود باز هم اینجا بروز رسانی میکنم
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Could not load file or assembly 'نام کتابخانه' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded
این خطا وقتی روی میدهد که شما web application خودتون رو بدون اینکه publish کرده باشید و به صورت کپی و paste در هاست گذاشته باشید. شما باید وب اپلیکیشن خودتون رو اول publish کنید و بعد در هاست کپی کنید.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded
این خطا به دلیل ورژن دات نت رخ میدهد. در صورتیکه .NET Framework4 را نصب نداشته باشید با این خطا برخورد خواهید کرد. برای رفع این مشکل روی سرور خود ورژن 4 دات نت رو نصب کنید.
مشکل حل خواهد َشد.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا در هنگام ایجاد یا باز نمودن پروژه جدید توسط ویژال استدیو:
the project type is not supported by this instalization
راهکار ها :
1: devenv /ResetSkipPkgs رو در run تایپ کنید و اجراش کنید. این دستور سعی میکنه که تمامی پکیج هایی رو که در تلاش قبلی برای لود اون ها با شکست مواجه شده بود رو لود کنه. این دستور مشکل خیلی از کاربرانی رو که با این مشکل مواجه شدند رو حل میکنه.
2: RC1 رو برای ویژوال استدیو UPDATE کنید.
3: در run دستور devenv /setup رو تایپ کنید و run کنید. پس از اتمام کار دوباره پروژه خودتون رو باز کنید و یا پروژه جدید ایجاد کنید. مشکل به احتمال زیاد حل خواهد شد.
4: ورژن قبلی orcas رو upgrade کنید . این راهکار هم از بر طرف کننده های این خطا هست.
5: در صورت عدم رفع خطا توسط راهکارهای بالا تازه الان باید به فکر نصب دوباره ویژوال استدیو افتاد نه اینکه در تایپیک ها میان میگن "ویندوز رو عوض کن. بعد ویژوال استدیو رو دوباره نصب کن" !!!!
گاهی تجویز میشه که اصلا بیا و کلا هاردت رو فرمت کن. :تشویق:
منابع بیشتر برای مطالعه :
http://social.msdn.microsoft.com/For...4-ba1593909b7e
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
A page can have only one server-side Form tag
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.Web.HttpException: A page can have only one server-side Form tag.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
علت و راهکار:
شما در صفحه خود از دو تگ فرم با "runat="server استفاده کرده اید. حالا ممکنه که از مسترپیج استفاده کرده باشید و در اون از تگ form استفاده کرده باشید و در content موجود در masterpage هم از تگ فرم استفاده کرده باشید. راه حل اینه که تگ form رو فقط در مسترپیج استفاده کنید و در content ها پاکش کنید.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
AjaxControlToolkit requires ASP.NET Ajax 4.0 scripts. - Error being thrown while building asp.net site. Site works when ignored
راه حل :
از ToolkitScriptManager به جای ScripManager خود دات نت استفاده کنید. مشکلتون حل خواهد شد.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Procedure or function '...function name' expects parameter '..@Parameter Name', which was not supplied.
این خطا نشون دهنده اینه که شما پارامتری رو به PROCEDURE خودتون پاس نمیدید.
البته تا جایی که یکی از دوستان گفتن گویا دات نت 1 هم مشکل داره در هنگام مقدار دهی به PROCEDURE ها اما فعلا در این مورد نمیتونم به قطعیت اظهار نظر کنم و باید برم راجع بهش تحقیق کنم.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Script controls may not be registered before PreRender
وقتی شما از کنترل های آجاکسی استفاده کنید در صورتیکه در وب پارت از userControl ی استفاده کنید که در اون از scriptmanager استفاده کنید و اون رو در متد prerender صفحه فراخوانی کنید به دلیل اینکه scriptmanager نمیتونه در متد OnPreRender قرار بگیره این خطا اتفاق میفته.
راهکار :
1:در یوزر منترل scriptmanager رو قرار ندید و به جای این کار scriptmanager رو در صفحه ای که داره از این یوزر کنترل استفاده میکنه چه وب فرم و چه master page قرار بدید.
2: در رویداد OnPreRender متد (base.OnPreRender(e رو حتما قرار بدید.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Maximum request length exceeded
وقتی فایلی که در حال آپلود اون هستید دارای حجم زیادی هست و یا به هر نحوی حجم زیادی از اطلاعات رو در Viewstate قرار داده باشید با این خطا روبرو میشید.
راه حل :
1: از حجم فایل ها یا اطلاعاتی که روی viewstate قرار داده شده کم کنید.
2:در web.config تگی هست به اسم httpRuntime که اطلاعاتی از قبیل مقدار زمان timeout و مقدار maxRequestLength که مقدار حداکثر حجم درخواستی رو در خودش داره بعلاوه یک سری صفات دیگه رو در خودش نگه میداره.
مقدار maxRequestLength رو افزایش بدید.
<httpRuntime maxRequestLength="20000" />
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Member names cannot be the save as their enclosing type
علت و راهکار:
فرض کنید شما کلاس خودتون رو به این صورت بنویسید
public class MyClass
{
//Note: its not constructor, constructor don't have return type.
public void MyClass()
{
}
}
خطا از اینجا ناشی میشه که متد سازنده نمیتونه مقداری رو برگردونه..
در عبارت بالا نوشتن void باعث بروز خطا شده و در صورتی که طبق توضیح اصلاح بشه و void برداشته بشه خطا رفع خواهد شد.
موفق باشید
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
The SelectCommand property has not been initialized before calling 'Fill
علت :
شما برای شی DataAdapter خود هیچ command ی رو برای مشخصه SelectCommand این شی ست نکردید و بدون اون دیتاست خودتون رو fill کردید و این منطقی نیست و باعث خطا میشه
راهکار :
توضیح داده شد
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Could not load file or assembly 'Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, ...
علت و راهکار :
این خطا عموما وقتی رخ میدهد که شما برای اولین بار application خود را که ارجاعی به کتابخانه ajax دارد را run میکنید. برای رفع این مشکل باید راه های زیر را امتحان کنید :
1) آخرین ورژن asp.net ajax رو نصب کنید
2)در we.config مقدار
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
با حالت capital شده آن
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
جایگزین کنید
اطلاعات بیشتر :
http://forums.asp.net/t/1055304.aspx/4/10
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
cannot declare instance members in a static class
علت و راهکار :
کلاس های استاتیک فقط میتوانند شامل اعضای استاتیک باشند پس متد ها و متغیر ها و property های غیر استاتیک خود را استاتیک کنید.
-
1 ضمیمه
Error 0x80070005
من این مشکل را که تصویر آن در زیر آمده است با نصب dotnetFraneWork 4 بر طرف کردم
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI
علت و راهکار :
این خطا وقتی روی میدهد شما در حال ایجاد تصویری بوسیله کلاس Image هستید و میخواهید اون رو ذخیره کنید.
شما یا در فولدری که میخواهید تصویر رو ذخیره کنید Permission ندارید و یا علت دوم این میتونه باشه که شما دارید از MemoryStream استفاده میکنید و باید برای ذخیره تصویر قبلا منابع مدیریت نشده رو توسط ()Dispose آزاد کنید مثل کد زیر :
private void LoadImage(string filename, ref Image image)
{
MemoryStream memoryStream = DecryptImageBinary(Settings.Default.ImagePath + filename, _cryptPassword);
var tmpImage = Image.FromStream(memoryStream);
image = new Bitmap(tmpImage);
tmpImage.Dispose();
memoryStream.Close();
}
اطلاعات بیشتر :
http://forums.asp.net/p/624305/2014493.aspx
http://stackoverflow.com/questions/1...ption-a-generi
http://forums.asp.net/t/1353341.aspx/1
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Sys.WebForms.PageRequestManagerServerErrorExceptio n: Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation
علت این خطا رخ دادن یک رویداد است بدون اینکه یک کنترل باعث Raise شدن آن باشد.
معمولا وقتی EnableEventValidation="true" ست شده باشد و از dopostback توسط جاوااسکریپت برای ارسال پارامتر استفاده شود این خطا رخ میدهد.
راه حل این خطا این است که یا EnableEventValidation="false" ست کنید و یا باید این رویداد را رجیستر کنید.
کد :
<script type="text/javascript">
function CallServer() {
__doPostBack('lbDoPostBack','JavaScript');
}
</script>
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
ClientScript.RegisterForEventValidation("lbDoPostB ack", "JavaScript");
base.Render(writer);
}
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Unverifiable code failed policy check
دلیل این خطا این است که
1:[*]پروژه VC++ باید توسط clr : safe کامپایل شود. وقتی در کد های خود از Unmanaged کد استفاده کنید با این خطا روبرو میشوید چون باعث میشود که این کد ها اجازه اجرا شدن نداشته باشند.
راه حل : توجه به نکته بالا و عدم استفاده از UnManaged code
2:
این بدین معنی است که application شما همراه با همه کتابخانه های مربوطه که به آن نیاز دارد Deploy نشده است.
در DEV environment جستجو کنید و سعی کنید که این dependency ها را تعیین محل کنید.
اطلاعات بیشتر :
http://social.msdn.microsoft.com/for...8-695048924b06
http://forums.asp.net/t/1660398.aspx...ble+code+issue
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
Collection was modified; enumeration operation may not execute.
علت و راهکار :
شما میخواهید روی داده ای از نوع Collection مقداری را ویرایش یا حذف کنید و برای این کار روی اعضای آن با foreach میچرخید و بر طبق شرایط میخواهید ویرایش یا حذف کنید.foreach پیمایش را به صورت ReadOnly انجام می دهد پس در داخل آن نمی توان تغییری ایجاد کرد.
این ارور برای این است که روی foreach و Collection نمیتوانید این عمل را انجام دهید. برای این کار باید یا از for استفاده کنید و یا Collection را با استفاده از متد های ToArray() به آرایه تبدیل کنید و سپس عمل مورد نیاز را انجام دهید.
foreach(Subscriber s in subscribers.Values)
به
foreach(Subscriber s in subscribers.Values.ToList())
راه دیگر گرفتن ایندکس مقدار مورد نظر در یک آرایه و سپس حذف آن در یک foreach با استفاده از تابع RemoveAt در آن است.
list<int> itemsToDelete
for(int i = 0; i < items.Count; i++)
{
if(shouldBeDeleted(items[i]))
{
itemsToDelete.Add(i);
}
}
foreach(int index in itemsToDelete.Reverse())
{
items.RemoveAt(i);
}
مطالعه بیشتر :
http://forums.asp.net/t/1147145.aspx...ay+not+execute
http://stackoverflow.com/questions/6...ay-not-execute
http://stackoverflow.com/questions/2...hat-collection
http://www.eggheadcafe.com/software/...each-loop.aspx
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
invalid token 'void' in class,struct or interface member declaration
علت و راهکار :
همانطور که در متن خطا توضیح داده شده مقدار void یا هر مقدار برگشتی برای کلاس , struct یا اینترفیس معنی ندارد.
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
یکی از دوستان این خطا رو پرسیده بودند :
DATABINDING METHODS SUCH AS EVAL(), XPATH(), AND BIND() CAN ONLY BE USED IN THE CONTEXT OF A DATABOUND CONTROL.
احتمالا شما همچین کاری کردید:
کد HTML:
<%= GetMyInfo(Eval("Blah").ToString()) %>
باید اون علامت = رو وردارید چون این کار غلطه. در متن خطا هم به وضوح توضیح داده
کد HTML:
<%# GetMyInfo(Eval("Blah").ToString()) %>
من باید باز هم بگردم دنبال دلیل این خطا. اما فعلا این رو پیدا کردم
-
نقل قول: مرجع کامل خطاها و BUG ها در ASP.NET
خطا :
The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element
علت :
وقتی از وب سرویس استفاده میکنید در صورتیکه مقدار بازگشتی از متد مورد نظر به لحاظ طول بیش از حداکثر مقدار Default باشد این پیام خطا را دریافت خواهید کرد.
راهکار :
در وب کانفیگ تنظیماتی را برای maxReceivedMessageSize به صورت زیر انجام دهید. میتوانید مقادیر دلخواه را به این صفت تخصیص دهید.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding
name="MyServiceConsumerBinding"
closeTimeout="00:01:00"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
allowCookies="false"
bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard"
maxBufferSize="5000000"
maxBufferPoolSize="524288"
maxReceivedMessageSize="5000000"
messageEncoding="Text"
textEncoding="utf-8"
transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas
maxDepth="32"
maxStringContentLength="8192"
maxArrayLength="16384"
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<security mode="None">
<transport
clientCredentialType="None"
proxyCredentialType="None"
realm="" />
<message
clientCredentialType="UserName"
algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint
address="http://localhost:12221/"
binding="basicHttpBinding"
bindingConfiguration="MyService"
contract="MyService.MyServiceInterface"
name="MyServiceConsumer" />
</client>
</system.serviceModel>
</configuration>
منابع :
http://forums.silverlight.net/forums/t/21326.aspx
http://social.msdn.microsoft.com/For...c-558f46a11a17
http://weblogs.asp.net/gunnarpeipman...-exceeded.aspx