Updating Service Desk System Ticket Notes from the Activate Portal
Issue Updating Notes with Service Desk Connector
With Service Desk connectors, sometimes the ability to update the Notes on the ticket does not work when everything else regarding logging a new ticket polling etc. will work.
The underlying reason is that the task of updating the Notes on a ticket happens in the context of the IIS Application Pool of the Activate Web Service.
This has two consequences that need to be investigated.
Authentication
This will usually not be a problem as usually we have a Service Desk user that will be used in all connections, however:
- If the IIS App Pool is running in the context of another user, and
- If we are using pass through authentication in the calls to the Service Desk API.
Then the user that the IIS App Pool runs as needs to have the permission to be able to update the Notes within the Service Desk product.
Proxy Settings
If the environment has a Web Proxy prohibiting outward bound connections then there are code changes that need to be made.
When a call to a web service is made from the Job Service then the call will respect the Proxy Settings set in the Windows Server Profile of the Job Service Account. This will mean that the proxy settings will work.
However, when a call to a web service is made from the IIS App Pool, the proxy setting of the IIS App Pool User are not used, they have to be specified.
There are two places to do this:
- In the IIS Web.Config of Activate you can add the following section: <system.net> <defaultProxy useDefaultCredentials="true"> <proxy proxyaddress="http://proxy.customer.co.nz:port" bypassonlocal="true" /> </defaultProxy> </system.net>
- In code (usually the preferred method) the following can be done:
public string WebProxy { get { if(_webProxy!=null) return _webProxy; _webProxy = SDResource["WebProxy"] as string; return _webProxy; } }
public HttpWebRequest GetWebRequest(string requestUrl, HttpVerb method) { HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest; ICredentials cred; cred = System.Net.CredentialCache.DefaultNetworkCredentials; request.Proxy = new WebProxy(WebProxy,true, null,cred); ....
}