none
Mutex初始化失敗 RRS feed

  • 問題

  • 各位好, 目前遇到mutex初始化失敗, WinForm AP 在Windows 10 Home, Professional都沒問題, 但在Windows 10 IoT Enterprise卻失敗, 請問這會跟OS有關嗎??

    以下為程式片段:

            private const string Mutex_Test = @"Global\MyMutex";
            private static Mutex mutexTest = null;
    
            public static bool Mutex_Init()
            {
                try
                {
                    bool createNew;
                    SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
                    MutexAccessRule allowEveryone = new MutexAccessRule(everyone, MutexRights.FullControl, AccessControlType.Allow);
                    MutexSecurity mutexSecurity = new MutexSecurity();
                    mutexSecurity.AddAccessRule(allowEveryone);
    
                    mutexTest = new Mutex(false, Mutex_Lpc, out createNew, mutexSecurity);
                    return true;
                }
                catch (Exception ex)
                {
                    mutexTest = null;
                    return false;
                }
            }

    錯誤訊息:

    System.UnauthorizedAccessException: Access to the path 'Global\MyMutex' is denied.

    Thanks!



    • 已編輯 _Wayne56 2020年5月27日 上午 01:27
    2020年5月26日 上午 10:49

所有回覆

  • Win10 IoT 是你自己安裝的還是硬體商提供的?因為硬體商可能會自行最佳化,並不見得是完整的 OS 。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2020年5月26日 下午 03:07
  • 有可能是Win10 IoT提供的.NET版本未支援您要的功能, 您可以看一下這篇討論:

    Is windows 10 IoT core support .net framework

    2020年5月26日 下午 11:42
  • Win10 IoT 是你自己安裝的還是硬體商提供的?因為硬體商可能會自行最佳化,並不見得是完整的 OS 。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    環境不在我手上, 這部分我還要再詢問看看, 那請問要怎麼確認被最佳化過? 最佳化會影響.NET程式?

    Thanks

    2020年5月27日 上午 12:52
  • 有可能是Win10 IoT提供的.NET版本未支援您要的功能, 您可以看一下這篇討論:

    Is windows 10 IoT core support .net framework

    這次問題是在Windows 10 IoT Enterprise, 根據GOOGLE, 與 Windows 10 IoT Core是不同的, 後者確實只支援UWP

    我試著裝Windows 10 IoT Enterprise來測試, 但一直找不到官方提供的OS, 後來找到這篇討論:

    Is Windows 10 Enterprise and Windows 10 IoT Enterprise the same?

    "Windows 10 IoT Enterprise is the marketing SKU name for the Windows 10 Enterprise LTSB edition that is available through the Industry OEM channel.  Enterprise LTSB is the same base OS as Windows 10 Enterprise without the store UX, Cortana, Edge or any of the UWP applications that are serviced through the store such as News, Sports, Finance, etc."

    所以我安裝Windows 10 Enterprise LTSB來測試, 不過是沒問題的, 這會是心冷提到的最佳化造成的原因?

    Thanks



    • 已編輯 _Wayne56 2020年5月27日 上午 01:00
    2020年5月27日 上午 01:00
  • Windows 10 Enterprise LTSB edition在巿場上銷售的產品名稱就是Windows 10 IoT Enterprise, 如果您安裝的Windows 10 Enterprise LTSB edition可以正常執行您的程式, 代表之前安裝的Windows 10 IoT Enterprise可能是從其他管道取得的, 其功能並不完全相同
    2020年5月27日 上午 10:41
  • Win10 IoT 所謂的硬體商最佳化通常是硬體商移除認為不需要的 Windows 功能,達成容量小、效能高。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2020年5月27日 下午 03:54
  • 謝謝兩位的回覆, 目前正想辦法拿到相同版本來測試

    另外請問, 會影響WinForm程式的部分, 我能想到的就只有.net framework, 除了安裝對應版本測試之外, 是否還有其他方向?

    Thanks


    • 已編輯 _Wayne56 2020年5月28日 上午 01:21
    2020年5月28日 上午 01:21
  • Windows 10 IoT Enterprise只比Windows 10 Enterprise LTSB(Windows 10 Enterprise)少store UX, Cortana, Edge,  UWP, 所以是有支援WinForm, 沒有問題
    2020年5月28日 上午 02:07
  • Windows 10 IoT Enterprise只比Windows 10 Enterprise LTSB(Windows 10 Enterprise)少store UX, Cortana, Edge,  UWP, 所以是有支援WinForm, 沒有問題

    是的, 在之前那篇連結討論有看到這個敘述, 所以照理說是要沒問題才對, 目前就是卡在這裡

    同一台機器, 其他OS版本都沒問題


    • 已編輯 _Wayne56 2020年5月28日 上午 03:30
    2020年5月28日 上午 03:29
  • 會不會測試的是不同的版本:

    Windows IoT

    2020年5月28日 上午 10:45
  • 還有這個月的 Windows Update 可能會造成 .Net framework 2.0/3.x 發生 Application Error 。

    在新環境下重新編譯可改善。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2020年5月28日 上午 11:33
  • tihs:

    這部分還要再確認

    心冷:

    雖然我的AP是基於.Net framework 4.0, 但我還是會試試看

    Thanks

    2020年5月29日 上午 01:06