开发步骤:
1、利用向导生成Service工程
i)在VS2005中新建一个工程,工程类型选择Visual C++,模板选择ATL Server Web Service,输入工程名称(如:TestWebService),点击OK按钮,进入向导界面。
ii)向导第一步,提示当前工程设置,告知当前工程将会生成哪些内容。直接点击“下一步”按钮
iii)向导第三步,设置部署参数,向导将为您生成一个ISAPI动态库,在这一步中可以设置ISAPI动态库的名字和ISAPI动态库工程的位置,以及编译后,服务在IIS中部署的位置(如:指定ServiceTest)。
iv)向导第四步,缓存和会话设置,可以直接选择下一步
v)向导第五步,直接选择下一步
vi)向导第六步,直接选择finish,创建Service工程。
vii)创建好的工程将包含一个WebService工程和一个ISAPI工程。
2、编写WebService
建立的WebService工程缺省会包含一个HelloWorld服务,其定义如下所示:
WebService接口定义:
__interface ITestWebServiceService
{
// HelloWorld is a sample ATL Server web service method. It shows how to
// declare a web service method and its in-parameters and out-parameters
[id(1)] HRESULT HelloWorld([in] BSTR bstrInput, [out, retval] BSTR *bstrOutput);
// TODO: Add additional web service methods here
};
WebService实现:
[ soap_method ]
HRESULT HelloWorld(/*[in]*/ BSTR bstrInput, /*[out, retval]*/ BSTR *bstrOutput)
{
CComBSTR bstrOut(L"Hello ");
bstrOut += bstrInput;
bstrOut += L"!";
*bstrOutput = bstrOut.Detach();
return S_OK;
}
可以将向导生成的HelloWorld服务修改为想要的服务,也可以添加自己的服务。具体添加方法和ATL编写组件方式类似,分为两步。
首先,在接口定义中添加新的方法描述,然后在添加新方法的实现,如下所示:
__interface ITestWebServiceService
{
// HelloWorld is a sample ATL Server web service method. It shows how to
// declare a web service method and its in-parameters and out-parameters
[id(1)] HRESULT HelloWorld([in] BSTR bstrInput, [out, retval] BSTR *bstrOutput);
// TODO: Add additional web service methods here
[id(2)] HRESULT Add([in] LONG a, [in] LONG b, [out, retval] LONG *pret);
};
[ soap_method ]
HRESULT HelloWorld(/*[in]*/ BSTR bstrInput, /*[out, retval]*/ BSTR *bstrOutput)
{
CComBSTR bstrOut(L"Hello ");
bstrOut += bstrInput;
bstrOut += L"!";
*bstrOutput = bstrOut.Detach();
return S_OK;
}
// TODO: Add additional web service methods here
[ soap_method ]
HRESULT Add(/*[in]*/ LONG a, /*[in]*/ LONG b, /*[out, retval]*/ LONG *pret)
{
if (pret != NULL)
{
*pret = a + b;
}
return S_OK;
}
最后编译Solution,生成WebService的DLL和ISAPI的DLL。
要想编译该Solution,必须安装IIS。
原文:http://www.geostar.com.cn/bbs1/dispbbs.asp?boardID=3&ID=215&page=2
(秩名) |