私の同僚が移動した後にプロジェクトを継承しました。私は、要求とデータを送信するクラウドベースのアプリケーションによって呼び出されるリスナーサービス用のC#プロジェクトを持っています。すべてのテストはdevでうまくいきますが、IIS 2008 R2にアプリケーションをデプロイすると問題が発生します。コンパイラエラーCS0246リスナサービスIIS 2008 R2
Visual Studioのプロジェクトで設定されたターゲットフレームワークは.Net Framework 4.5です。
コンパイル済みアプリケーションを含むIIS上の仮想ディレクトリは、「.Net Framework v4.0.30319」を使用するように設定されたアプリケーションプール内にあります。私の研究から、このFrameworkバージョンはv4.5用にデプロイされたすべてのアプリケーションで動作するはずです。
仮想ディレクトリには、リスナーサービス用のasmxファイル、Web.Configファイル、すべてのバイナリを含むbinディレクトリが含まれています。私はIEでASMXファイルを呼び出すと
は、私は次のエラーを取得する:
コンパイラエラーメッセージ:CS0246:型または名前空間名「XXX」が見つかりませんでした(あなたがusingディレクティブまたはアセンブリが欠落しています参照?)
参照XXXはusingステートメントとしてリストされ、同じプロジェクト内のフォルダ構造内にあります。別のプロジェクトを指しているわけではありません。私は次のMicrosoft articleを読んで、その中のすべてが正しいと思われる。しかし、最後のコメントは、DLLが.Net 4.5用にコンパイルされたときにエラーCS0246が発生し、ターゲットPlattform 4.0を持つプロジェクトにコピーされたことを示唆しています。
上記のアプリケーションプール設定が.Net v4.5用に構築されたアプリケーションで動作するかどうかを確認してください。なぜasmxファイルがWebサーバー上でコンパイルされないのでしょうか?
'.Net Framework v4.0.30319'は、.NET 4.0,4.5,4.5.1,4.5.2,4.6,4.6.1,4.6.2、および4.7のベースですので、正しいです。この問題は、アーキテクチャの不一致(x86 vs x64)がある場合にも発生する可能性があります。 –