2013-05-21 46 views
0

我們知道,如果我們使用visual studio構建web服務,visual studio會自動生成兩個文件,第一個是.asmx,第二個是.vb作爲後面的代碼。使用visual studio 2008在asp.net中的WebService

在後面的代碼(的.vb)我得到的是這樣的:

Imports System.Web 
Imports System.Web.Services 
Imports System.Web.Services.Protocols 

<WebService(Namespace:="http://tempuri.org/")> _ 
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ 
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ 
Public Class WebService 
Inherits System.Web.Services.WebService 

<WebMethod()> _ 
Public Function HelloWorld() As String 
    Return "Hello World" 
End Function 

End Class 

和.asmx文件,我得到的是這樣的:

<%@ WebService Language="VB" CodeBehind="~/App_Code/WebService.vb" Class="WebService" %> 

問題是

  1. .asmx文件的主要用途是什麼?它只顯示一行代碼,是否有用?
  2. 我們可以讓一些方法是.asmx文件,而不是code_behind?以及如何從.aspx文件中使用它?
+0

請參考follwing鏈接:http://stackoverflow.com/questions/7149345/why-do-asmx-web-services-have-a-markup-file – bgs

+0

@Selvam我只需按照以下指令,但我怎麼能從.aspx的.asmx文件中調用方法? – NPE

回答

0

是的,這是可能的。

請參考下面的鏈接:

Why do asmx web services have a markup file?

<%@ 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"; 
    }  
} 
+0

如何從.aspx文件調用方法helloworld()? – NPE

+0

你不想從.aspx中調用它。我想你可能不明白Web服務是什麼。 –

+0

我的意思是:
昏暗的WS作爲新的WebService
ws.SomeMethod(參數1,參數2) – NPE

0

請參考示例VB編碼

<%@ WebService Language="VB" Class="WebService" %> 
Imports System.Web 
Imports System.Web.Services 
Imports System.Web.Services.Protocols 

<WebService(Namespace:="http://tempuri.org/")> _ 
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ 
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ 
Public Class WebService 
    Inherits System.Web.Services.WebService 

    <WebMethod()> _ 
    Public Function HelloWorld1() As String 
     Return "Hello World" 
    End Function 

End Class 

與其他Web方法調用它也是在Web方法列表中列出。

左鍵點擊你的項目添加服務引用 - >查看 - >展開+符號

Web方法應列在那裏。

+0

「海PLS」 是不是英語。 –

0

您需要manullay創建Web rerference(添加服務refrence)

webservice的.asmx文件樣本

<%@ WebService Language="VB" Class="WebService" %> 
Imports System.Web 
Imports System.Web.Services 
Imports System.Web.Services.Protocols 

<WebService(Namespace:="http://tempuri.org/")> _ 
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ 
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ 
Public Class WebService 
    Inherits System.Web.Services.WebService 

    <WebMethod()> _ 
    Public Function HelloWorld1() As String 
     Return "Hello World" 
    End Function 

End Class 

改變我們的配置如下設置:

的web.config代碼

<security mode="none"> 
     <transport clientCredentialType="None" proxyCredentialType="None" 
      realm="" /> 
     <message clientCredentialType="UserName" algorithmSuite="Default" /> 
</security> 

<security mode="TransportCredentialOnly"> 
    <transport clientCredentialType="Ntlm"/> 
    <message clientCredentialType="UserName" algorithmSuite="Default"/> 
</security> 

sample.aspx Page code

<%@ Import Namespace="System.ServiceModel" %> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <% Dim obj As New WebServiceSoapClient 
     Response.Write(obj.HelloWorld1())%> 
    </div> 
    </form> 
</body> 
</html> 
相關問題