2012-03-08 110 views
2

我制作了一个ASP.net Web服务,其中包含一个不带参数的服务。我想直接从URL查询中调用ASMX服务。通过HTTP访问ASMX脚本服务获取

这是我的服务

[WebMethod] 
[ScriptMethod(UseHttpGet = true)] 
public DataSet getXMLData() 
{ 
    string strQuery = "SELECT * FROM Products"; 
    string strRootNode = "Root"; 
    string strItemNode = "Item"; 

    dbConn = dbConnString; 
    dbQuery = strQuery; 
    . 
    . 
    . 
    . 
    da.Fill(ds, strItemNode); 
    return ds; 
} 

这不起作用

http://localhost:23147/ProductsWS.asmx?op=getXMLData

该服务的页面调试页面显示,但它不会被调用。我希望被自动调用以使查询返回:

<Root xmlns=""> 
    <Item diffgr:id="Item1" msdata:rowOrder="0"> 
     <ModelName>Tree</ModelName> 
     <UnitCost>7.0000</UnitCost> 
    </Item> 
    <Item diffgr:id="Item2" msdata:rowOrder="1"> 
     <ModelName>Stump</ModelName> 
     <UnitCost>13.0200</UnitCost> 
    </Item> 
</Root> 

我该如何去做这件事?

+0

首先,您使用的这些.NET的版本?如果您使用.NET 3.0或更高版本,那么您根本不应该创建ASMX Web服务。您应该使用WCF来代替。其次,请更清楚你的要求。你是什​​么意思“传递一(1)个URL”? “服务的xml文件”是什么意思?你的意思是WSDL? – 2012-03-08 00:47:12

+0

感谢您的回复。发布更新以澄清 – dsgrant07 2012-03-08 00:53:38

+0

您还没有回答我的问题。你想达到什么目的?你可以发布服务的代码吗? – 2012-03-08 01:04:25

回答

3

这是调用服务的网址:

http://localhost:23147/ProductsWS.asmx/getXMLData 
+0

好的。我甚至没有注意到他使用了错误的操作名称。 – 2012-03-10 22:44:59