2010-12-30 29 views
2

に私は次のエラーを取得していない:は、デプロイされたWebアプリケーションのエラーをコンパイルしますが、私のデプロイされたWebアプリケーションでIDE

CS0103: The name 'releaseLionButton_Click' does not exist in the current context

それは問題のあるラインとしてこれを識別します。では

<asp:Button ID="releaseLionButton" runat="server" 
      Text="Release the Lion!" 
      OnClick="releaseLionButton_Click"></asp:Button> 

コードビハインドファイル、私は次のコードを持っています:

internal void releaseLionButton_Click(object sender, EventArgs e) 
{ 
    if (selectedLionCage != null && selectedLionCage.DoorState == DoorState.Closed) 
     selectedLionCage.OpenDoor(); 
} 

私はこのエラーをinternalprotected、ASPXページでは、コードビハインドファイルで定義されているPageクラスから「Interits」と表示されるため、意味があります。

これはすべて問題ありません。

私が理解できないのは、ローカルマシンのIDEでプログラムを実行すると、internalでプログラムが動作する理由です。

私はテスターに​​このような愚かなエラーが100回起きないようにしたいと思います。私は100種類のわずかに異なるバージョンのテストデプロイメント文書をしたくありません。

私はそれをが動作しないようにしたいと考えています。がIDEで動作しない場合は、実際には動作しません!

だからここに私の質問です:

どのように私は、IDE内のローカルバージョンが展開されたバージョンを体験しようとしていることコンパイルエラーのすべてを生成するために得ることができますか?

もっと現実的な問題からあなたをそらすための情報:アプリケーションの

ターゲットフレームワークは、」。NET Frameworkの3.5" です。それはSystem.DirectoryServices.AccountManagementを参照しているため、これが必要です。

テストマシンのエラーページには、「バージョン情報:Microsoft .NET Frameworkバージョン:2.0.50727.4206; ASP.NETバージョン:2.0.50727.4209」と表示されます。

さらに、ディレクトリサービスアカウント管理コードは、テストマシン上で完全に動作します。私はそこに何が起こっているのか分からない。私はこれは私が維持しています古いアプリケーションであり、それは時折私にいくつかのランダムなASPXファイルの検証警告の長いリストが表示されます

を経験しています

その他、同様の問題。私はコードがきれいでかわいいのが好きなので、コードはまだ動作しますが、これらのすべてを修正します。私はまだすべてのファイルまたは特定のファイルに対して検証警告を生成する方法を見つけていません。

時々、(変数名を変更するなどして)コードをリファクタリングすると、コードが現在コンパイルされていないと警告され、リファクタリングが機能しなくなることがあります。それでも、コードがコンパイルされないと思う理由をIDEに教えてもらえません。それでも完全に実行され、エラーや警告はエラーリストに表示されません!私が発見したパターンがない他の時間は、リファクタリング中に警告メッセージを表示しません。another questionに答えるとき、それは「ショーは、セマンティック・エラーを生きる」オプションはC#のエディタで有効になっている場合。ASPXファイルの検証が動作することを私に指摘されたASPXファイルの検証

に関する

UPDATEこれは他の誰も持っていなかったような問題がなぜ起こったのかを説明します。

+0

私は間違っているかもしれませんが、あなたがサイトのバージョンを選択したときにIISには3つの.NETバージョンしかないので、IISは2.0と言っているかもしれません。 1.1、2.0、および4.0です。 IISのバージョン2.0では、.netバージョン3.5のWebサイトが実行されます。 – Josh

答えて

3

.aspxと.cs/vb codebehindsを持つ従来のasp.net Webサイトがある場合、実際には2つの異なるアセンブリが含まれています。コードビハインドは1つのアセンブリにコンパイルされ、IISは.aspxを取り込み、別のアセンブリに動的にコンパイルします。内部として何かをマークすると、アセンブリ境界を定義するため、動的aspxアセンブリはコードビヘイドアセンブリの内部メンバを参照できません。

VSのウェブサーバーのようにうまくいかない理由については、私はそれについて詳しくは分かりません。しかし、あなたのコンピュータ上のIISであなたのウェブサイトを設定するだけです。そうすれば、 "制作"版とまったく同じように動作します。

デバッグが心配な方は、問題はありません。管理者権限でVisual Studioを実行し、マシンのサーバーエラーが発生したら、Visual Studioを使用してw3wp.exeに接続してくださいエラーを打ち破る。

+0

私はローカルサーバーをセットアップし、それをいじったので、今は動作しているようです。テストサーバーのように動作しています。私はまだアプリケーションのすべてのオプションをクリックすることなくコンパイルエラーを得ることができたら幸いですが、これは確かにそれよりも優れています!ありがとう。 –

0

あなたのソリューションでWebプロジェクトをコンパイルしていないと思います。

+0

私はWebプロジェクトを実行していますが、コードは全く問題なく実行されます。 Webアプリケーションに関して私が知る必要がある他の「コンパイル」プロセスがありますか? –

+0

ビルド/リビルド/パブリッシュソリューション/ウェブサイト/ページのすべてのオプションを試しましたが、何もそのトリックはありません。 –

関連する問題