Skip to content

MS_ASPNETWebService

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

ASP.NET Web Service

概要

.NET Framework 登場時に利用可能となった SOAP Web サービス。

  • 拡張子 .asmx のファイルで実装するため、「ASMX Web サービス」とも呼ばれる。
  • [WebService] / [WebMethod] 属性を付けたクラス・メソッドが公開される。
  • WSDL は ?WSDL を付けてアクセスすると自動生成される。
[WebService(Namespace = "http://tempuri.org/")]
public class Service1 : System.Web.Services.WebService
{
    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }
}

選択

現在は WCF(MS_WCF.md)や ASP.NET Web API
同等以上のことが可能なため選択しない。

補足(最新化): 選択しない理由を補足しておく。

  • ASMX は .NET Framework 専用であり、 .NET Core 以降には存在しない(移植されていない)。
  • Microsoft は .NET Framework 3.0 の WCF 登場時点で ASMX を「レガシー テクノロジ」と位置付けている。
  • IIS 上でしかホストできない (ASP.NET Web API は OWIN でセルフホスト可能)。

既存の ASMX を .NET 8 以降へ移行する場合の選択肢は次のとおり。

移行先 適する状況
REST / ASP.NET Web API 呼び出し側も作り直せる場合(第一候補)
gRPC 内部のサービス間通信で、性能を求める場合
CoreWCF 既存クライアントの SOAP 契約を変えられない場合

なお、.asmx の既定の名前空間 http://tempuri.org/ を そのまま本番公開してしまう例が多い。 契約の一意性が損なわれるため、 [WebService(Namespace = ...)] は必ず自組織のものに変更すること。

参考


Tags: .NET開発, 通信技術, ASP.NET

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally