зеркало из https://github.com/mono/xsp.git
78 строки
3.3 KiB
Plaintext
78 строки
3.3 KiB
Plaintext
xsp/test
|
|
---------
|
|
This directory contains little sample ASP.NET pages.
|
|
|
|
About Web Services samples
|
|
--------------------------
|
|
|
|
Summary of files:
|
|
|
|
TestService.asmx: A simple web service
|
|
ConverterService.asmx: Currency converter web service
|
|
DumpExtension.cs: Soap extension that dumps all requests to a file.
|
|
EncryptExtension.cs: Soap extension that encrypts all requests.
|
|
TraceExtension.cs: Soap extension that logs the soap messages.
|
|
ServiceClient.cs: Simple web service client
|
|
Reference.cs: Web service client proxies.
|
|
ServiceClient.exe.config: Configuration file for ServiceClient.
|
|
|
|
There are two sample web services, implemented in TestService.asmx and
|
|
ConverterService.asmx.
|
|
|
|
TestService.asmx is a very simple web services with two methods. It shows how
|
|
simple is to implement web services using ASP.NET.
|
|
|
|
The ConverterService implements a simple currency converter. With it you can
|
|
make conversions between a limited set of currencies, get a list of currency
|
|
rates, get the rate of a given currency or change the rate of a currency.
|
|
|
|
This sample shows most of the functionality you can get from ASP.NET
|
|
web services.
|
|
|
|
The service uses Soap headers to keep information about the currently logged
|
|
user. Before calling any other method, the client must call Login(). This
|
|
method generates an Out header with user information that is sent and stored
|
|
in the client. All subsequent calls will include that header so the server
|
|
will be able to validate the user.
|
|
|
|
This WS also makes extensive use of Soap extensions. There are three of them:
|
|
|
|
- DumpExtension (DumpExtension.cs): This is a global extension that must be
|
|
configured in the web.config file. It dumps all requests and responses to
|
|
the file dump.log. It will only dump the calls of classes that have the
|
|
[Dump] attribute.
|
|
|
|
- EncryptExtension (EncryptExtension.cs): This extension uses the Rijndael
|
|
algorithm to encrypt all information exchanged between the server and the
|
|
client. For it to work, the web service class must have the [Encrypt]
|
|
attribute. The client proxy class used to connect to the service must also
|
|
have that attribute (see Reference.cs). This is also a global extension
|
|
that must be configured in web.config.
|
|
|
|
- TraceExtension (TraceExtension.cs): This extensions logs the soap requests
|
|
and responses to the file trace.log. The difference between TraceExtension
|
|
and DumpExtension is that TraceExtension logs requests after it's been
|
|
deserialized, so it can log the method name and parameter types and values.
|
|
On the other hand DumpExtension just does a raw dump of the received stream.
|
|
Another difference is that TraceExtension can be applied to individual
|
|
methods, using the attribute [TraceExtension].
|
|
|
|
In the client side, the client proxies are implemented in Reference.cs.
|
|
There is a sample client implemented in ServiceClient.cs that makes some calls
|
|
to the services.
|
|
|
|
How to test
|
|
-----------
|
|
|
|
Build XSP and start the server as usual.
|
|
cd to xsp/test and run ServiceClient.exe passing the hostname and port:
|
|
|
|
For example:
|
|
|
|
mono ServiceClient.exe localhost:8080
|
|
|
|
After execution, you should see the files trace.log and dump.log in
|
|
xsp/server/test with the traces of the requests. You can try to add and remove
|
|
the encrypt extension from web.config and ServiceClient.exe.config and see
|
|
in dump.log the information being sent in each case.
|