2009-06-06 9 views
2

私はデスクトップ向けの経験豊かな.net開発者ですが、これはASP.NETを使用したときの私の最初の刺し傷で、私はすぐに困惑しています。ASP.NET初心者の新規Webサイトでの不具合

私はVS2008の「新しいウェブサイト」ウィザードを使用し、単純なページ、コードビハインドページ、およびすべてを使用しました。しかし、すべてのページで使用されるいくつかのユーティリティメソッドのための単純な静的クラスを追加する私の次のステップは全く機能しません。

私はApp_Codeにコードを入れようとしましたが、新しいライブラリプロジェクトを作成して参照しようとしました...すべてVisual Studioで常にコンパイルされますが、サーバーにアップロードすると、クラスを識別したり、ライブラリアセンブリを認識できます。私はweb.configを使いこなしてみましたが、ライブラリアセンブリを参照する方法を見つけることができませんでした( "*"はそれを実行していないようです)。

サーバーのページ:バージョン情報:Microsoft .NET Frameworkバージョン:2.0.50727.3074; ASP.NETのバージョン:2.0.50727.3074

ユーティリティメソッドにはベストプラクティスの方法があります。また、コードビハインドページに、それ以外のクラス(またはより良い名前空間、またはアセンブリ)を認識させるにはどうすればよいですか?

私は取得しています正確なエラーは次のとおりです。 はCS0246:型または名前空間名「MyCommon」が見つかりませんでした

答えて

2

私はあなたを仮定している(?あなたがusingディレクティブまたはアセンブリ参照が不足しています) doには、名前空間を指すusingステートメントがありますか?

私は時々見る...サーバー上で、(IISで)あなたは "アプリケーション"として新しいフォルダをマークしていますか?それはIISでコグを持つ必要があります。もしそうでなければ、App_Codeの間違った場所を探しているでしょう( "アプリケーション"はローカルのアプリケーションルートがどこにあるかを示します)。右クリック、プロパティ、 "アプリケーションの作成"(またはそのようなもの - 私は手にするサーバがありません)

+0

Vista(IIS7)には、トリックを行う必要があるアプリケーションに変換するオプションがあります。 – RichardOD

+0

はい、グローバルな名前空間と明示的な名前空間を試しました。彼らはすべてビジュアルスタジオとコンパイルファイルでうまくマッチしますが、サーバー上で壊れます。残念ながら、私はサーバーへのFTPアクセスしか持っていないので、アイコンをチェックすることはできません。 – lidgren

+0

IISのフォルダをアプリケーションとして設定しないと、動作しません...どのサーバーですか? IIS 6? IIS 7? –

0

ヘルパークラスがwebformと同じ名前空間にあることを確認するか、あなたが呼んでいる特定のヘルパーメソッド。あなたがしようとしていることのいくつかのコードを提供できますか?

0

publishing the web siteでプロジェクトをサーバーに移動していることを確認してください。また、新しいWebサイトの代わりにweb application project(new-> project-> web-> webアプリケーションプロジェクト)を使用することもできます。それはあなたが期待するように行動するでしょう。

+0

私も実際にそれを試してみましたが、同様の問題がありましたので、私はウェブサイトに戻ってきました。(ctrl-sは "公開"しやすいように...) – lidgren

5

ウェブサイトの "プロジェクト"を無視することをお勧めします。彼らはプロジェクトではないという点でVisual Studioの世界ではユニークです(.csprojや他の同様のファイルはありません)。彼らは非常に奇妙で、非ウェブサイトの開発者に直観に反して見えるでしょう。

代わりに、「ファイル」 - >「新規プロジェクトの追加」を使用し、「ASP.NET Webアプリケーション」を選択します。そうすれば、期待どおりに動作するWebアプリケーションプロジェクトが作成されます。あなたが好きなフォルダにクラスを追加することもできます。クラスが動作すると期待されるように動作します。

+0

私は簡単に試しましたが、しかし、一般的なコンセンサスは、Webアプリケーションが優れていると思われるので、私はおそらく別のWebアプリケーションに行くだろう。 – lidgren

+0

これは問題を解決するのに役立たないが、私はあなたがアプリケーションがサイトより優れていることに同意する。 http://mikehadlow.blogspot.com/2009/04/sorry-tale-of-visual-studio-web-site.html – RichardOD

+0

@lidgren:ウェブアプリケーションプロジェクトを試してみることをお勧めします。問題がある場合は、新しい質問を作成してください。あなたの問題は実際にはこれと同じではないかもしれません。 –

1

クラスはにApp_Codeでないときに、私はこのエラーを見てきました...別のノートで

は、あなたの代わりにウェブサイトのASP.NETアプリケーションを開始している可能性があります。彼らは2つの異なるアプリケーションモデルです、アプリケーションの変種は、クラスとアセンブリを追加することで少し簡単です。私はそれはあなたがここに記述されているものと同様、私たちのチームのためのトラブルの多くを引き起こす行ったようWebサイトプロジェクトを使用して回避する

0

。代わりに、Webアプリケーションプロジェクトモデルを使用する必要があります。このモデルは、マルチプロジェクトソリューションに適しています。

ただし、Webサイトのプロジェクトモデルを使用する必要がある場合は、プロジェクト(MyCommon)の参照をWebアプリケーションに追加してから、使用するクラスにusingステートメントを作成する必要があります。