背景
.NET Framework 2.0,C# ESRI ArcGis 10.1 64位Windows Server 2008 R2。
问题:
在ArcGIS 9.3上运行此程序直至ArcGIS 10.0已经没有问题,而且系统A的早期版本。
系统A的提供商目前使用10.0版的.NET-interop将其升级到ArcGIS 10.1。 我们也这样做了,但现在使用.NET-Remoting无法正常工作 - > WindowsService了。
使用DataFetcherStub运行EXE一切正常。 运行Windows服务时,它会在系统A中崩溃。
Faulting application name: windows_service.exe, version: 1.0.4802.40962, time stamp: 0x51293874
Faulting module name: AfCore_libFNP.dll_unloaded, version: 0.0.0.0, time stamp: 0x4f920360
Exception code: 0xc0000005
Fault offset: 0x619fe9b0
Faulting process id: 0x14c0
Faulting application start time: 0x01ce120f632c1f0e
Faulting application path: D:\path\windows_service.exe
Faulting module path: AfCore_libFNP.dll
Report Id: a41b42dc-7e02-11e2-8e56-00155d0a11a9
在使用ArcGIS获得许可并通过Windows服务运行时,是否有人提出此错误?
ESRI论坛上有一个帖子,但它不会给我任何线索如何解决这个问题?
http://forums.arcgis.com/threads/74546-Product-Licensing-in-Scheduled-Batch
接近供应商不是一种选择,因为它花了将近一年的时间来解决我们发现的最后一个问题。在他们最终得到证据证明这是他们的错误之前,用手指指着我们9个月,我很确定他们也会打这个。如果我们可以解决这个问题,那就更快了。
我尝试过使用Windows服务。
1)System.Threading.ThreadPool.QueueUserWorkItem(o => FireAndForgetProcess());没有运气
2)Process.Start(“FireAndForgetMe.exe”)NO LUCK
任何人都可以提供另一种方法来获取外部exe以从Windows服务“释放自己”并且就像它自己开始一样?
答案 0 :(得分:1)
Esri开发团队在不必使用管理员帐户的情况下为我提供了修复。
此处的问题是FLEXnet许可服务(Esri现在使用10.1,但未在10.0中使用)没有为其设置正确的执行权限,以便“网络服务”帐户可以启动它。
Esri正在处理补丁,但与此同时,还有一个手动解决方法:
确保您以具有管理员权限的用户身份登录。
在Windows的“开始”菜单中,选择“运行”并输入“cmd”。右键单击“cmd.exe”并选择“以管理员身份运行”。
在命令提示符中,运行以下命令: sc sdshow“FLEXnet Licensing Service”
这将打印出在该服务中注册的DACL权限: d:(d ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; NU)(A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; BA)(A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; SY)(A ;; CCLCSWRPLOCRRC ;;; IU)S:(AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; WD)
我们需要在权限字符串中插入“(A ;; CCLCSWRPWPDTLOCRRC ;;; WD)”,使其成为: d:(d ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; NU)(A ;; CCLCSWRPWPDTLOCRRC ;;; WD)(A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; BA)(A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; SY)(A ;; CCLCSWRPLOCRRC ;;; IU)S:(AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; WD) 注意:用户的DACL字符串可能会有所不同,应仔细对字符串进行编辑。
对于上面的示例,您将输入: sc sdset“FLEXnet Licensing Service”D:(D ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; NU)(A ;; CCLCSWRPWPDTLOCRRC ;;; WD)(A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; BA)(A ;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; SY)( A ;; CCLCSWRPLOCRRC ;;; IU)S:(AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; WD)
答案 1 :(得分:0)
<强>解决方案强>
我将运行windows-service的帐户更改为我的admin帐户,现在可以正常运行。 10.1要求运行该服务的Windows帐户更多,或者他们已降级该帐户。
我想我必须在早上检查一下。然而问题解决了。
编辑:在10.1之后需要提出帐户的权利。