用ISaveAs 接口保存 GRID 文件时遇到的问题
今天利用isaveas 接口保存GRID文件,每次到了saveas方法,都会报“对 COM 组件的调用返回了错误 HRESULT E_FAIL。”的错误。
首先看仔细的看代码,又看了帮助;
程序写的没有问题
再到网上查找都说:
//------------尝试无用----(不知对你是否有用,先贴出来)----------------------
. 在控制面板--->管理工具--->服务 中,开启Distributed Transaction Coordinator 服务。
2. 打开控制面板--->管理工具--->组件服务--->选择计算机--->我的电脑--->右击属性--->选择MSDTC--->选择安全配置 勾选事务管理器通信中的允许出站、允许入站和不要求进行验证。
如下图所示:
重启IIS
//--------------------------------------------------------------------------------------------------------
反正我的问题这样改后没有解决。还浪费了一定的时间。
最后:
public IDataset SaveAs (
string Name,
IWorkspace pWorkspace,
string Format
);
其中只有三个参数,Format 肯定没问题("GRID"),那就是name 和PWorkspace 了。 pWorkspace 看帮助都这么写。 难道是name有什么要求。 立马把name参数随便改了一个,保存成功,可以肯定是name的问题了(我原来那个是一堆表示时间的数字,有20多个字符)。
经过用arcmap实验。知道GRID保存时name 是有限定的:
1。字符数不能超过13个。
2.可以包含a-z ,A-Z ,0-9 ,“-”“_”. (这个都是一样)
3.必须以字母开头。
将name处理为满足上述3点的就可以了。
来自:http://shenyanhong-1.blog.163.com/blog/static/353741200981403352490/