2012-12-03 13 views
5

IISでC#Webサイトを実行しています。私はApp_codeディレクトリの下にいくつかの.csファイルを持っています。私はすべての* .aspx.csファイルと* .ascx.csファイルでそれらを参照できます。私はVisual studioを持っていないので、手動で変更する必要があります。IISで実行中のC#Webサイトに新しい.csファイルを追加

これで、Webサービスを.aspx.csファイルで使用する必要があります。 wsdl.exeを使用してプロキシクラスを生成し、App_codeディレクトリに配置しました。しかし私は私のaspx.csファイル内のファイルを参照することができません。私は、エラーを取得

コンパイラエラーメッセージ:CS0246:型または名前空間名「TestSearchProxy」が見つかりませんでした(あなたがusingディレクティブまたはアセンブリ参照が不足している?)

プロキシdoesntの任意の名前空間を定義しておき、それがデフォルトの名前空間であると仮定しています。 aspx.csファイル内に「*」を追加していません。

この問題の解決方法を教えてもらえますか?

私が試した別のアプローチは、次のとおりです。

私は、cscコマンドを使用してプロキシファイルからDLLを生成し、binディレクトリの下にDLLを置きます。私はまだプロキシクラスにアクセスすることができません。

+0

なぜVisual Studio(Express)を使用しないのですか? –

+0

私は既存のプロジェクトに取り組んでおり、slnファイルはVisual Studio Expressの新しいバージョンと互換性がありません。私はC#と.netに新しいです。あなたは私がビジュアルスタジオなしでこれらの変更を行うのを助けてくれます – Bhuvana

+0

MSBuildのバージョンがありますか? 'msbuild/t:Build .csproj' –

答えて

3

最初の試みについて:

  • TestSearchProxyの名前空間を確認し、それを明示的に使用します。NameSpace.TestSearchProxy
  • をそれが生成されたプロキシコードから名前空間を削除しようと動作しない場合。
  • asp.net tempディレクトリを消去してみてください。これにより、app_codeディレクトリを最初から再コンパイルします。
    1. IISサービスを停止し(これは通常、あなたがIISホットデプロイのメカニズムので、試す最初の事はサクサクビットである)
    2. DEL/S「C:\ WINDOWS \ Microsoft.NET Frameworkの\ \ v2.0.50727の\テンポラリASP.NETファイル*。* "
  • プロキシコードのコンパイルエラーをチェックします。特に、使用しているwsdl.exeが、ターゲットにデプロイされているIIS/.netフレームワークよりも新しいフレームワークバージョンである可能性がありますプラットフォーム。第二の試み、(binディレクトリにDLLを置く)について

  • あなたは、あなたが行うことができ、それへの参照を追加する必要がありますという点で、web.configファイルからあなたのaspxウェブサイトのルートディレクトリ:

    <アセンブリ>

    <はアセンブリ= "のAssemblyName、バージョン= 1.0.0.0、文化=中立を追加GAC(ます。gacutil -i dllname.dll)に追加しなPublicKeyToken = 123456789ABCD1"/>

    < /アセンブリ>

    それとも。

  • これは古いシステムかもしれないので、競合を避けるためにdllが正しいバージョンの.netと正しいアーキテクチャ(x86/x64)でコンパイルされていることを確認する必要があります(4.0 clr/32ビットのみ)。

関連する問題