3
我在ASP.Net中看到很多地方,其中的web服務是用asmx文件實現的。標記幾乎總是空的(除了基本的Web服務標記),所有的代碼都是「後面的代碼」。爲什麼asmx web服務有標記文件?
這個標記文件是從舊的做事方式傳遞還是用於其他目的?
我在ASP.Net中看到很多地方,其中的web服務是用asmx文件實現的。標記幾乎總是空的(除了基本的Web服務標記),所有的代碼都是「後面的代碼」。爲什麼asmx web服務有標記文件?
這個標記文件是從舊的做事方式傳遞還是用於其他目的?
實際上,.asmx文件不是標記文件,而是包含標記的文件。在.asmx文件中有完整的Web服務實現是完全合法的。在文件後面使用代碼是很好的做法,但不是強制性的。
嘗試在一個ASMX文件建立這個例子,它的工作原理:
<%@ WebService Language="C#" Class="WebService1" %>
using System.Web;
using System.Web.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class WebService1 : WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
即使在這種情況下,你需要:
編輯:更具體的最後幾點:
每個web服務都需要一個端點,它基本上是一個由客戶端調用的URI。對於WCF Web服務,通常在web.config中配置端點。定義端點的ASP.NET方法是將.asmx文件放置在Web應用程序文件夾結構中的某處。當通過此URI調用Web服務時,.asmx文件中的WebService
屬性告訴IIS哪些類包含實際的Web服務實現。
謝謝,不知道。已經有一個「WebService」類屬性,「<%@ WebService%>」服務的目的是什麼? – tpower
@tpower:我在回答中附加了一些行,以便更具體地說明這一點。 – Stephan