私は最も奇妙な問題を抱えています!ASP.NET Webサイトアプリケーションを持っています(幸いなことにまだライブではありません)。昨日も毎日も、エラーなしでアプリケーションを実行できました。昨夜遅くにコンピューターの電源を切ったときは、問題なく動作していました。app_offline.htm
今日アプリケーションを実行すると、Webサイトがオフラインであり、ルートディレクトリからページを削除してオンラインに戻す必要があるという奇妙なメッセージが表示されました。
このメッセージやページはこれまで見たことがないので、オンラインで検索したところ、SQL Serverは、着信要求(または同様のもの)を停止するために忙しいときに一時的にそこに配置できるようです。その適切な使用法は、アップロードまたはメンテナンスを行っているときに、サイトへのリクエストの送信を停止することです。私は提案されたようにそれを削除し始めました。私はソリューションをクリーンアップして構築し、それを実行しようとしました。実行されなくなります。
これで、イベントハンドラー(以下に表示)MasterPage
のコントロールに通常アクセスする場所の背後にあるコードでエラーが発生します。MasterPage
Page_Load
protected void Page_Load(object sender, EventArgs e)
{
breadCrumb.BreadCrumbs = BreadCrumbs;
header.MenuItems = MenuItems;
footer.Footers = Footers;
head.Controls.Add(CreateCssLink("~/Stylesheets/main.css", "screen"));
head.Controls.Add(CreateJavaScriptLink("~/Scripts/site.js"));
if (Context.Session != null && Session["layout"] == null) Session["layout"] = "single";
if (!ArePreferencesVisible) preferences.Visible = false;
}
ここで明確にしておきたいのですが...このコードにはエラーはありません。MasterPage
には、このコードの要素に対応する正しい名前の要素があります。今日まで常に期待どおりに機能しており、最後に機能してからコードを変更していません。要素が。であるためNullReferenceException
、最初の行にが表示されます。実際、ここで参照されているページのすべての要素はです。breadCrumb
null
null
通常、ページ要素はPage_Load
イベントが発生するまでに初期化されています。これが起こらなくなった原因は何ですか?
MasterPageとそのコードビハインドファイルがまだ接続されていることを再確認しました。また、このコードをPage_LoadComplete
イベントハンドラーに移動しようとしましたが、その段階でもコントロールはまだ初期化されていませんでした。以前は問題なく機能していたので、コードを変更する必要はありません。
また、このコードをコメントアウトすると、スタイルはありませんが、Webサイトが実行されました。興味深いことに、元のコードをイベントハンドラーに戻し、ページを更新すると、実際には以前と同じように機能しました。いくつかの異なるページを正常にロードし、それ自体が修正されたと思ったので、アプリケーションを再起動してから、同じエラーが再度発生しました。クリーニング、ビルド、ソリューション構成の変更、またはアプリケーションとVisualStudioの再起動による違いはありません。
app_offline.htm
燻製ニシンかどうかはわかりませんが、これまで見たことがないので、なんとなく繋がっているのかもしれません。私が読んだところによると、それを削除するだけでサーバーがアプリケーションドメインを自動的に再起動するため、接続が表示されないようです。
私はすべてアイデアがなく、これが修正されるまで自分のWebサイトを運営できないため、誰かがこの奇妙な状況に遭遇したことを本当に望んでいます。