2017-07-07 4 views
0

私の同僚が移動した後にプロジェクトを継承しました。私は、要求とデータを送信するクラウドベースのアプリケーションによって呼び出されるリスナーサービス用の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サーバー上でコンパイルされないのでしょうか?

+0

'.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)がある場合にも発生する可能性があります。 –

答えて

0

The problem seems to be in the assembly which contains the XXX type.You may have an older version or a different version of this assembly which does not contain this type or namespace.

  • binディレクトリへのあなたのタイプ
  • 行くのDLLを見つけると、このDLLのバージョンを見つけるクロスのdevの環境でこのバージョンを確認
  • 存在しています。
  • 問題が解決しない場合は、手動であなたのdevの環境からこのアセンブリをコピーして、IISサーバーに
0

を置くことができます。まず返事に時間がかかった人に感謝します。

問題は、IIS上の仮想ディレクトリをアプリケーションに変換する必要があることが判明しました。オプションは、仮想ディレクトリのツリービューの右側のメニューにあります。本当に便利な「仮想ディレクトリを表示」を選択した場合は利用できません。