0

Web サービス用に生成されたプロキシ クラスについて質問があります。基本的に、私は自分のソリューションに Web サービス参照を追加しようとしましたが、検出ファイルが見つからないためにできませんでした。そのため、インターネットで多くの人が言ったように、WSDL を使用してプロキシ クラスを生成し、それをインスタンス化し、これを使って。

基本的に私は素敵なプロキシクラスを手に入れましたが、それをどのように使用するのですか?

wsdl ファイルを見ると、たとえば次のようになります。

 <wsdl:service name="AuthenticationService">
  <wsdl:documentation>Provides simple authentication capability.</wsdl:documentation> 
   <wsdl:port binding="auth:AuthenticationServiceSoapBinding" name="AuthenticationService">
  <wsdlsoap:address location="http://localhost:8080/alfresco/api/AuthenticationService" /> 
  </wsdl:port>
  </wsdl:service>

リクエストされたWebサーバーのlocalhostなどにリダイレクトします...

しかし、私のクラスでは、これを「localhost」URLのコンストラクターとして使用していますが、Webサービスは他のサーバーで実行されているため、接続できないのは正常です。

public AuthenticationService() {
    this.Url = "http://localhost:8080/alfresco/api/AuthenticationService";
 }

しかし、どうすれば今これを正しく使用できますか?

この URL を wsdl ファイルの元の URL に設定する必要がありますか? そのようなもの:http://internetserver:8080/alfresco/api/AuthenticationService.wsdl?それを行うとwsdlファイルが返されますが、結果は返されず、エラーが発生します。他の何かを試してみると、結果として404が返されます....

それについて何か考えはありますか?

4

2 に答える 2

1

別のサーバーで実行されているサービスに接続できるようにする場合は、URL の動作を動的に変更する必要があります。次の記事を参照してください。

http://www.codeproject.com/Articles/12317/How-to-make-your-Web-Reference-proxy-URL-dynamic

これにより、構成ファイルを変更することで、別の URL で実行されている同じ Web サービスを参照できるようになります。

于 2013-03-19T08:42:01.473 に答える
1

私の経験は限られていますが、Apple の GSX サービスの Web サービス リファレンスを 1 回追加しました。クライアントオブジェクトの接続方法であると思われるweb.configに以下を追加しました:

<client>
  <endpoint address="https://gsxws2.apple.com/gsx-ws/services/emea/iphone" binding="basicHttpBinding" bindingConfiguration="GsxWSEmeaIPhoneBinding" contract="AppleGSX.GsxWSEmeaIPhonePort" name="GsxWSEmeaIPhonePort"/>
</client>
于 2013-03-19T08:51:52.687 に答える