2009-07-14 4 views
1

ASP.NETサービスでリモートサービスを呼び出すASP.NETクライアントコードを実装しました。実装は基本的に、Visual Studioの「Web参照の追加」ウィザードを使用し、適切な「remote.service.namespaceを使用して」コードに追加し、サービスを呼び出すことによって実行されました。プロダクション(IIS)サーバー上のASP.NETでwebserviceを使用する際の問題

コードをローカル(Visual Studioのから)完璧に動作しますが、不足しているアセンブリ参照エラーと生産のWebサーバー上の失敗:

CS0246: The type or namespace name 'remote.service' could not be found (are you missing a using directive or an assembly reference?)

私は多分いくつかのいずれかのことができ、適切にすべてを展開しておりませんという卑劣な疑いを持っています私がそこに欠けていることを指摘してください。

ありがとうございます!

追加情報:

プロジェクトのウェブサイトです。

ASP.NETバージョン2.0がインストールされ、開発者と運用サーバーの両方のターゲットとして使用されています。

WSDL.exeによって生成されたプロキシファイルは、ページが存在する同じフォルダのWebサイトのルートフォルダに展開されます。プロキシクラスの生成には、グローバル名前空間(デフォルト)が使用されていました。

答えて

2

このウェブサイトのプロジェクトである場合は、プロキシファイルは、.NETで

0

App_WebReferencesフォルダとそのすべてのコンテンツをサーバーにコピーしましたか?

+0

これはフォルダ(リモート/サービス/ ..)と2つのファイルを持っていますsomething.discomapとsomething.wsdl – xelurg

+0

リモートサーバーのサイトのIISプロパティでは、ASP.NETのバージョンは2.0に設定されています? –

+0

はい、ASP.NET 2.0に設定されています – xelurg

0

あなたのASP.NETサイトの他の部分は機能しますか?

サイトターゲット3.5とおそらく3.5がプロダクションサーバーにインストールされていませんか?

0

これはウェブサイトですか、ウェブアプリケーションプロジェクトですか?私はそれがWebサイトだと思う。

1

あなたは、プロキシdllが「ページがあるWebサイトのルートフォルダ」に配置されていると述べました。

"bin"フォルダ内にdllを置く必要があります。フォルダがない場合は作成してください。

1

にApp_Codeフォルダー内のWebサービスのクライアント・スタックを配置する必要があり、WSDLによって生成されたクラス内のアノテーションからプロキシクライアントの実行時の生成を(ありません.exe/svcutil.exe)。この生成されたファイルは通常、あなたのサーバのtempディレクトリの1つになります(メインのウィンドウツリーの下にあるものがどこかにあります)。問題は、ASP.NETユーザーアカウントにこの特定の一時ディレクトリに書き込む権利がないが、ファイルを書き込むときに気付かないため、生成されたファイルを読み込もうとするエラーが発生するファイルを元に戻す。サーバーのインストール順序によっては、状況が変わることがあります。正しいディレクトリが見つかったら、そのディレクトリにあるNTFS permを修正して問題を解決するだけです。

関連する問題