私は奇妙な問題を抱えています!私はASP.NETのウェブサイトアプリケーションを持っています(幸運にもまだ生きていません)。昨日と毎日前、私は間違いなくアプリケーションを実行することができました。昨夜遅くにコンピュータをオフにしたときにうまくいきました。今日、アプリケーションを実行したとき、私のウェブサイトがオフラインであったことを伝える奇妙なメッセージが表示され、app_offline.htm
ページをルートディレクトリから削除してオンラインに戻す必要があります。ASP.NET Webサイトで、MasterPageのコントロールのコードにNullReferenceExceptionが発生しました。
これまでにこのメッセージやページを見たことがないので、SQL Serverが受信要求を停止するのに忙しい間に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
には、このコードに対応する要素が正しく名前が付けられています。それは今日まで期待通りに働いていたし、最後に働いて以来、コードを変更していない。 breadCrumb
要素がnull
であるため、最初の行にNullReferenceException
が表示されます。実際、ここで参照されるページの要素はすべてnull
です。
通常、ページ要素はPage_Load
イベントが発生するまでに初期化されています。これで何が起こったのでしょうか?
私は、MasterPageとそのコードビハインドファイルがまだ接続されていることを確認しました。また、このコードをPage_LoadComplete
イベントハンドラに移動しようとしましたが、その段階でもコントロールがまだ初期化されていませんでした。これまではうまくいきましたので、コードを変更する必要はありません。
私はこのコードをコメントアウトしていますが、スタイルはなくてもウェブサイトは実行されました。興味深いことに、元のコードをイベントハンドラに戻してページをリフレッシュすると、以前と同じように実際に再び機能しました。私はいくつかの異なるページを正常にロードして、それ自体が修正されていると思ったので、アプリケーションを再起動して、同じエラーが再び発生しました。クリーニング、ビルド、ソリューション構成の変更、アプリケーションとVisual Studioの再起動は、何の違いもありません。
app_offline.htm
が赤ちゃんであるかどうかはわかりませんが、どちらか前に見たことがないので接続している可能性があります。私が読んだところでは、それを削除するだけでサーバーが自動的にアプリケーションドメインを再起動して、接続が見えなくなっているようです。
この奇妙な状況に遭遇する前に、私はすべてアイデアが足りないため、これが修正されるまで自分のウェブサイトを実行することができないことを願っています。
netherは、SQL Serverがどのようにサイト上でapp_offline.htmを設定できるかを確認できます。 – Aristos
私は 'app_offline.htm'をgoogleにタイプし、3番目の結果はこのページです:http://www.daniweb.com/web-development/aspnet/threads/215912/why-app_offline.htm-is-created-automatically-何が謎なのか?あなたはあまりにも難しく見えなかったようです。いずれにせよ、私はSQL Serverがそれをしたと主張していませんでした。ただそれを読んだだけです。 – Sheridan
ビジュアルスタジオ2008はこのファイルを追加します。これは正しいです。ビジュアルスタジオはプロジェクトをロードするときにこのファイルを追加し、プロジェクトが完全にロードされている場合は削除します。なんらかの理由でファイルを削除できない場合、ファイルは残っています。ビジュアルスタジオは、サイトを開発するとき。 SQLはどこに配置するのかわからなかった...とにかく私はこれをもう一度チェックするが、SQLはそれを何とかしないと思う。 – Aristos