A MapServer object extension for performing network analysis within a stateless environment.
Product Availability
Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Network Analyst Extension.
Extended Error Information
Use the ISupportErrorInfo method InterfaceSupportsErrorInfo to determine if the object supports extended error information. If the object supports extended error info, VC++ developers should use the OLE/COM IErrorInfo interface to access the ErrorInfo object. Visual Basic developers should use the global error object Err to retrieve this extended error information.
Interfaces
Interfaces | Description |
---|---|
ILogSupport (esriSystem) | Provides access to methods for initializing an object for logging. |
INAServer | Provides access to methods that perform network analysis in a stateless environment within a MapServer. |
INAServer2 | Provides access to methods that perform network analysis in a stateless environment within a MapServer. |
IObjectActivate (esriSystem) | Provides access to methods for activating and deactivating objects. |
IObjectConstruct (esriSystem) | Provides access to methods for constructing an object. |
IRequestHandler (esriSystem) | Provides access to members that control handing of request messages. |
IRequestHandler2 (esriSystem) | Provides access to members that control handing of request messages. |
IServerObjectExtension (esriServer) | Provides access to the members that control a server object extension. |
ISupportErrorInfo | Indicates whether a specific interface can return Automation error objects. |
Remarks
The NAServer is a MapServer object extension that can be used to perform network analysis in a stateless environment using ArcGIS Server.
[C#]
This example illustrates connecting to an NAServer web service via a web reference and getting the names of the route layers.
// Assumes you've created a web reference to web service named "SanFrancisco"
SanFrancisco_NAServer pNAServer = new SanFrancisco_NAServer();
pNAServer.Url = "http://localhost/ArcGIS/Services/SanFrancisco/MapServer/NAServer"
// Use NAServer to get analysis layer names
string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
This example illustrates connecting to an NAServer within a map server object named "SanFrancisco" and getting the names of the route layers.
// Connect to ArcGIS Server and get the MapServer's ServerContext
IGISServerConnection pGISServerCon = new GISServerConnection(); pGISServerCon.Connect("localhost");
IServerObjectManager pSOM = pGISServerCon.ServerObjectManager;
IServerContext pServerContext = pSOM.CreateServerContext("SanFrancisco","MapServer");
// Get the NAServer server object extension
IServerObjectExtensionManager pSOEM = pServerContext.ServerObject as IServerObjectExtensionManager;
INAServer pNAServer = pSOEM.FindExtensionByName("NAServer") as INAServer;
// Use NAServer to get analysis layer names string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
// Release the context since you're done with it
pServerContext.ReleaseContext();
This demonstrates how to connect to an NAServer object using the ADF web controls and getting the names of the route layers.
//Get the ServerContext from the WebControl and get the MapServer's ServerContext
ServerConnection conn = new ESRI.ArcGIS.Server.WebControls.ServerConnection("localhost",true);
IServerObjectManager pSOM = conn.ServerObjectManager;
IServerContext pServerContext = pSOM.CreateServerContext("SanFrancisco", "MapServer");
// Get the NAServer server object extension
IServerObjectExtensionManager pSOEM = pServerContext.ServerObject as IServerObjectExtensionManager;
INAServer pNAServer = pSOEM.FindExtensionByName("NAServer") as INAServer;
// Use NAServer to get analysis layer names
string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
// Release the context since you're done with it
pServerContext.ReleaseContext();
// Assumes you've created a web reference to web service named "SanFrancisco"
SanFrancisco_NAServer pNAServer = new SanFrancisco_NAServer();
pNAServer.Url = "http://localhost/ArcGIS/Services/SanFrancisco/MapServer/NAServer"
// Use NAServer to get analysis layer names
string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
This example illustrates connecting to an NAServer within a map server object named "SanFrancisco" and getting the names of the route layers.
// Connect to ArcGIS Server and get the MapServer's ServerContext
IGISServerConnection pGISServerCon = new GISServerConnection(); pGISServerCon.Connect("localhost");
IServerObjectManager pSOM = pGISServerCon.ServerObjectManager;
IServerContext pServerContext = pSOM.CreateServerContext("SanFrancisco","MapServer");
// Get the NAServer server object extension
IServerObjectExtensionManager pSOEM = pServerContext.ServerObject as IServerObjectExtensionManager;
INAServer pNAServer = pSOEM.FindExtensionByName("NAServer") as INAServer;
// Use NAServer to get analysis layer names string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
// Release the context since you're done with it
pServerContext.ReleaseContext();
This demonstrates how to connect to an NAServer object using the ADF web controls and getting the names of the route layers.
//Get the ServerContext from the WebControl and get the MapServer's ServerContext
ServerConnection conn = new ESRI.ArcGIS.Server.WebControls.ServerConnection("localhost",true);
IServerObjectManager pSOM = conn.ServerObjectManager;
IServerContext pServerContext = pSOM.CreateServerContext("SanFrancisco", "MapServer");
// Get the NAServer server object extension
IServerObjectExtensionManager pSOEM = pServerContext.ServerObject as IServerObjectExtensionManager;
INAServer pNAServer = pSOEM.FindExtensionByName("NAServer") as INAServer;
// Use NAServer to get analysis layer names
string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
// Release the context since you're done with it
pServerContext.ReleaseContext();