2011-08-22 33 views
3

我在ASP.Net中看到很多地方,其中的web服務是用asmx文件實現的。標記幾乎總是空的(除了基本的Web服務標記),所有的代碼都是「後面的代碼」。爲什麼asmx web服務有標記文件?

這個標記文件是從舊的做事方式傳遞還是用於其他目的?

回答

2

實際上,.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"; 
    } 
} 

即使在這種情況下,你需要:

  • 的標記,以服務類的.asmx文件關聯
  • Web應用程序中.asmx文件的位置以指定Web服務地址

編輯:更具體的最後幾點:

每個web服務都需要一個端點,它基本上是一個由客戶端調用的URI。對於WCF Web服務,通​​常在web.config中配置端點。定義端點的ASP.NET方法是將.asmx文件放置在Web應用程序文件夾結構中的某處。當通過此URI調用Web服務時,.asmx文件中的WebService屬性告訴IIS哪些類包含實際的Web服務實現。

+0

謝謝,不知道。已經有一個「WebService」類屬性,「<%@ WebService%>」服務的目的是什麼? – tpower

+0

@tpower:我在回答中附加了一些行,以便更具體地說明這一點。 – Stephan