Srv1にasmx webSerivceを作成しました。 srv2でasp.netのbllプロジェクト(元のテキスト:asp.net)プロジェクトを作成しました。両方が同じWebドメインでホストされています
asp.netのbllプロジェクト(元のテキスト:asp.net(c#)コードビハインド)からasmxを呼び出します。
1)Web参照を追加しましたが、参照サービスを実際に呼び出す方法についてのチュートリアルが見つかりませんでした。
私が試してみました:
private void GetTemplateComponentsData()
{
var service = new ServiceReference.GetTemplateParamSoapClient();
TemplateParamsKeyValue[] responsArray = service.GetTemplatesParamsPerId(id);
foreach (var pair in responsArray)
{
TemplateComponentsData.Add(pair.Key, pair.Value);
}
}
ただし、最初の行の実行時に次のエラーが発生します:ServiceModelクライアント構成セクションでコントラクト 'ServiceReference.GetTemplateParamSoap'を参照するデフォルトのエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったためか、このコントラクトに一致するエンドポイント要素がクライアント要素で見つからなかったため)
私は何が欠けていますか?
2)asp.net projとasmxを1つのドメインから別のドメインに一緒に移行します。このWebサービスを比較的参照する方法はありますか?
わかりました、あなたのシナリオを言い換えて、私がそれを正しくしたことを確認させてください:
最初のステップは、ASMXサービスのWSDLを指すことにより、ASP.NETアプリケーションにサービス参照を追加することです。
これは2つのことを行います。
Web.configを変更し、クライアントエンドポイントを含めます。
<client>
<endpoint address="http://ws.cdyne.com/NotifyWS/phonenotify.asmx"
binding="basicHttpBinding" bindingConfiguration="PhoneNotifySoap"
contract="ServiceReference1.PhoneNotifySoap" name="PhoneNotifySoap" />
<endpoint address="http://ws.cdyne.com/NotifyWS/phonenotify.asmx"
binding="customBinding" bindingConfiguration="PhoneNotifySoap12"
contract="ServiceReference1.PhoneNotifySoap" name="PhoneNotifySoap12" />
</client>
これで、アプリケーションからこのサービスを呼び出す場合、使用するエンドポイントを選択する必要があります。
using (var client = new ServiceReference1.PhoneNotifySoapClient("PhoneNotifySoap"))
{
var result = client.GetVersion();
}
次に、コードスニペットを実際のサービス名に置き換えます。