簡體   English   中英

Hadoop命令在Windows7中從c#代碼執行時無法正常工作,錯誤顯示:“訪問被拒絕”

[英]Hadoop Command Not working while executing from c# code in Windows7, Error show : “Access is denied”

我正在使用winutils.exe task create ip ipconfig執行Hadoop命令,並使用Admin特權從cmd winutils.exe task create ip ipconfig ,並顯示其結果。 但是,如果要在具有管理員權限的c#程序中嘗試相同操作,則會顯示“ Access is denied錯誤。

錯誤:

C:Hadoop\bin>winutils.exe task create ip ipconfig

createTask error (5): Access is denied.

問題出在WinUtils.exe。 WinUtils.exe在task.c文件的createTask()方法中使用了AssignProcessToJobObject()

在Windows 7中,如果Jobobject已經分配了一個進程,則'AssignProcessToJobObject'無法分配新進程,並返回“ Access Denied”消息。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms681949(v=vs.85).aspx 因此,當您以編程方式調用exe時,可能已經為jobObject分配了一個ProcessHandle,然后該ProcessHandle從“ AssignProcessToJobObject”函數返回為“拒絕訪問”。

修復:檢查JobObject中是否有任何關聯的進程,並且僅在未將jobObject分配給任何進程時才分配新進程。 確保所做的更改僅適用於Windows 7環境,並允許在Windows 8及更高版本的環境中使用默認代碼。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM