Testable Operations

Topics: Technical Questions
Feb 25, 2008 at 8:08 PM
Hi,

I have an endpoint with an operation (version 1.0.0.0, Active, Published) configured with a specific channel. I maked it as testable but the Dispatcher still continues to call the implementation service. Am I making something wrong?

Thanks,

Renato
Developer
Feb 27, 2008 at 5:04 PM
Hi Renato-

Uncheck the Active status for your operation and you should be good to go. If the operation is marked Active, the MSE will still invoke the service implementation even if it is marked Testable.



renatoguimaraes wrote:
Hi,

I have an endpoint with an operation (version 1.0.0.0, Active, Published) configured with a specific channel. I maked it as testable but the Dispatcher still continues to call the implementation service. Am I making something wrong?

Thanks,

Renato

Feb 28, 2008 at 12:36 PM
Edited Feb 28, 2008 at 5:49 PM
Hi botto,
See what I did few time ago:
- I created a new operation that uses the same SoapAction of an existent operation. I checked Is public and Is Testable;
- Added the operation to an endpoin, so I can see the endpoint in the operation's endpoint list (but I don't see the operation in the endpoint's operation list);
- When I click on the endpoint I don't see the operation in the endpoint's operation list
- When I click on the endpoint's WSDL I see the operation there
- I am using the Service Tester to test this new operation but It doesn't appear in the operation list.

Is there a problem If I use the same messages (request and response) of an existent operation?
Do I need to select a channel moniker even the operation is testable?
If I don't check the Active option I get a message below (this is because the moniker is not configured. If I do it, It will call the implementation service):

<?xml version="1.0" encoding="utf-16"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode xmlns:a="http://services.microsoft.com/MSE">a:MSE Runtime Message Processing Exception</faultcode>
<faultstring xml:lang="en-US">Object reference not set to an instance of an object.</faultstring>
</s:Fault>
</s:Body>
</s:Envelope>

Did I miss anything?

Thanks,

Renato


botto wrote:
Hi Renato-

Uncheck the Active status for your operation and you should be good to go. If the operation is marked Active, the MSE will still invoke the service implementation even if it is marked Testable.



renatoguimaraes wrote:
Hi,

I have an endpoint with an operation (version 1.0.0.0, Active, Published) configured with a specific channel. I maked it as testable but the Dispatcher still continues to call the implementation service. Am I making something wrong?

Thanks,

Renato


Developer
Feb 28, 2008 at 8:51 PM
There were several questions there, let me try and touch all of them.
You'll note that there are two places where you can specify an Active state for an operation. 1) the operation itself has active state (also where the testable state is found), 2) the operation at a specific endpoint is active or not.

When you add the operation to an endpoint, you will need to mark it active (#2) in order for it to be callable at that endpoint (this is separate from published, which indicates the operation is discoverable.. i.e. in the WSDL). The operation itself is still only testable (#1).

The behavior you are describing is indicative of not specifying Active when you assign the operation to an endpoint (you likely only specified Published). The Management UI will only display active operations when you select an endpoint.

You can use the same schemas (request/response) for any number of operations.

You will need a channel moniker defined even though the operation is marked as testable. The MSE will still use the Xaml reader to construct the object graph identified by the moniker, but it won't use it.

Double check your configuration based on how I described and let us know if you run into any other issues.

Thanks.


renatoguimaraes wrote:
Hi botto,
See what I did few time ago:
- I created a new operation that uses the same SoapAction of an existent operation. I checked Is public and Is Testable;
- Added the operation to an endpoin, so I can see the endpoint in the operation's endpoint list (but I don't see the operation in the endpoint's operation list);
- When I click on the endpoint I don't see the operation in the endpoint's operation list
- When I click on the endpoint's WSDL I see the operation there
- I am using the Service Tester to test this new operation but It doesn't appear in the operation list.

Is there a problem If I use the same messages (request and response) of an existent operation?
Do I need to select a channel moniker even the operation is testable?
If I don't check the Active option I get a message below (this is because the moniker is not configured. If I do it, It will call the implementation service):

<?xml version="1.0" encoding="utf-16"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode xmlns:a="http://services.microsoft.com/MSE">a:MSE Runtime Message Processing Exception</faultcode>
<faultstring xml:lang="en-US">Object reference not set to an instance of an object.</faultstring>
</s:Fault>
</s:Body>
</s:Envelope>

Did I miss anything?

Thanks,

Renato


botto wrote:
Hi Renato-

Uncheck the Active status for your operation and you should be good to go. If the operation is marked Active, the MSE will still invoke the service implementation even if it is marked Testable.



renatoguimaraes wrote:
Hi,

I have an endpoint with an operation (version 1.0.0.0, Active, Published) configured with a specific channel. I maked it as testable but the Dispatcher still continues to call the implementation service. Am I making something wrong?

Thanks,

Renato



Mar 5, 2008 at 11:30 AM
Ok. It's working now. I made some mistakes.

Thanks,

Renato.



botto wrote:
There were several questions there, let me try and touch all of them.
You'll note that there are two places where you can specify an Active state for an operation. 1) the operation itself has active state (also where the testable state is found), 2) the operation at a specific endpoint is active or not.

When you add the operation to an endpoint, you will need to mark it active (#2) in order for it to be callable at that endpoint (this is separate from published, which indicates the operation is discoverable.. i.e. in the WSDL). The operation itself is still only testable (#1).

The behavior you are describing is indicative of not specifying Active when you assign the operation to an endpoint (you likely only specified Published). The Management UI will only display active operations when you select an endpoint.

You can use the same schemas (request/response) for any number of operations.

You will need a channel moniker defined even though the operation is marked as testable. The MSE will still use the Xaml reader to construct the object graph identified by the moniker, but it won't use it.

Double check your configuration based on how I described and let us know if you run into any other issues.

Thanks.


renatoguimaraes wrote:
Hi botto,
See what I did few time ago:
- I created a new operation that uses the same SoapAction of an existent operation. I checked Is public and Is Testable;
- Added the operation to an endpoin, so I can see the endpoint in the operation's endpoint list (but I don't see the operation in the endpoint's operation list);
- When I click on the endpoint I don't see the operation in the endpoint's operation list
- When I click on the endpoint's WSDL I see the operation there
- I am using the Service Tester to test this new operation but It doesn't appear in the operation list.

Is there a problem If I use the same messages (request and response) of an existent operation?
Do I need to select a channel moniker even the operation is testable?
If I don't check the Active option I get a message below (this is because the moniker is not configured. If I do it, It will call the implementation service):

<?xml version="1.0" encoding="utf-16"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode xmlns:a="http://services.microsoft.com/MSE">a:MSE Runtime Message Processing Exception</faultcode>
<faultstring xml:lang="en-US">Object reference not set to an instance of an object.</faultstring>
</s:Fault>
</s:Body>
</s:Envelope>

Did I miss anything?

Thanks,

Renato


botto wrote:
Hi Renato-

Uncheck the Active status for your operation and you should be good to go. If the operation is marked Active, the MSE will still invoke the service implementation even if it is marked Testable.



renatoguimaraes wrote:
Hi,

I have an endpoint with an operation (version 1.0.0.0, Active, Published) configured with a specific channel. I maked it as testable but the Dispatcher still continues to call the implementation service. Am I making something wrong?

Thanks,

Renato