【回転】アナライザエラーメッセージ:不明な一致が見つかりました.


今日またこの間違いにぶつかって、気絶しました;私がまた低級な間違いを犯したのか.
プロジェクトがリリースされると、実行中にエラーが発生しました.エラーコードは次のとおりです.
説明:このリクエストにサービスを提供するために必要なリソースを分析中にエラーが発生しました.次の特定の分析エラーの詳細を確認し、ソースファイルを適切に変更してください.アナライザエラーメッセージ:不明な一致が見つかりました.ソースエラー:

'/'アプリケーションのサーバーエラー。


アナライザエラー

  1: <%@ page language="C#" autoeventwireup="true" inherits="web_GovOpen_DepartInfo, App_Web_departinfo.aspx.65a6504e" %>
  2: 
  3: <%@ Register Src="top.ascx" TagName="top" TagPrefix="uc4" %>

ソースファイル:/web/govopen/departinfo.aspx行:1
-------------
この間違いの原因は私は自然によく知っていますが、なぜこの間違いが起こったのか分かりません.
前の段落では、機能を追加するには、同僚に手伝ってもらう暇がありません.ページに追加されたコントロールidとcsファイルの変数名が重複している可能性があります.ソースコードを見てみると、やはりそうでした.
今日は暇なので、この間違いの原因を説明しましょう.
ASP.Netでは、aspxページごとに1つあります.csファイル、(複数のaspxで1つのcsを共有することはできないようですが、私は前にこの問題に遭遇しました)、aspxページでは、サーバコントロール、htmlコントロールを使用します.これらのコントロールのidの名前を付けると、csファイルの変数と名前を変更すると、エラーが発生します.しかも大文字と小文字が同じかどうかにかかわらず、間違いを報告します.
C#は大文字と小文字を区別しているのではないかと聞かれるかもしれません.C#は大文字と小文字を区別しているので、デバッグ時にエラーを報告することはありませんが、IISは大文字と小文字を区別していません.発表後、エラーを報告しました.
もちろん、プログラムを変更してこのエラーを修正したくない場合は、プロジェクト全体のソースプログラムをIISディレクトリにコピーして、正常に実行することができます.ほほほ、非常にお勧めしません.
プログラムに書くと、C#では変数string companyとstring Companyが2つの変数に分けられますが、しかし、私たちはこのようにすることを提唱していません.できるだけ避けるべきです.これは一般的に間違っていません.主にaspxページのコントロールidで、idの間にも同じ文字を使わないでください.また、csファイルの変数名と同じ文字を採用しないでください.大文字と小文字を区別する問題だけではありません.
また、プログラムでは、Departmentのようなものを書きました.私たちはaspxのページにgridviewのようなコントロールを置いて、そのidはdepartmentあるいはDeparmentで、csファイルの中で、私たちは依然としてDeparmentすることができます.DataSource、およびDepartment.DataBind()をバインドしても、エラーは報告されません.いったん発表されると、IISに着くと、間違いを報告します.
これらのネーミング方法は、エラーではありませんが、デバッグタイムズだけを見てもエラーを報告しないでください.肝心なのは、プロジェクトが発表された後に正常に稼働しているかどうかです.また、プロジェクトのリリース後の実行環境をフィルタリングする必要があります.IISの場合です.