//授权信息加载
ESRI.ArcGIS.esriSystem.IAoInitialize m_AoInitialize = new ESRI.ArcGIS.esriSystem.AoInitialize();
m_AoInitialize.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeArcInfo);
// Create and populate the property set
//ESRI.ArcGIS.esriSystem.IPropertySet propertySet = serverContext.CreateObject("esriSystem.PropertySet") as ESRI.ArcGIS.esriSystem.IPropertySet;
ESRI.ArcGIS.esriSystem.IPropertySet propertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass();
propertySet.SetProperty("SERVER", server);
propertySet.SetProperty("INSTANCE", instance);
propertySet.SetProperty("DATABASE", database);
propertySet.SetProperty("USER", user);
propertySet.SetProperty("PASSWORD", password);
propertySet.SetProperty("VERSION", version);
//实例化为SDE工作空间仓库
ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2 workspaceFactory;
workspaceFactory = (ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2)new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass();
//workspaceFactory = (ESRI.ArcGIS.Geodatabase.IWorkspaceFactory)serverContext.CreateObject("esriDataSourcesGDB.SdeWorkspaceFactory")
// as IWorkspaceFactory2;
IWorkspace pWorkspace;
try
{
pWorkspace = workspaceFactory.Open(propertySet, 0);
}
catch
{
pWorkspace = null;
}
return pWorkspace;
=========================================================
2009.11.19 在另一机器上测试时,报错:
服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))
==========================================================
后来把下面这句注释了
//IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)serverContext.CreateObject("esriDataSourcesFile.CadWorkspaceFactory");
同时改为下面的形式
//Create a WorkspaceName object
IWorkspaceName pWorkspaceName = new WorkspaceNameClass();
pWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesFile.CadWorkspaceFactory";
pWorkspaceName.PathName = path;
IWorkspaceFactory workspaceFactory = pWorkspaceName.WorkspaceFactory as IWorkspaceFactory;
感觉问题还是AE下开发serverContext.CreateObject和new的问题。