【问题标题】:InPlaceHostingManager Hosted in IIS, Access is denied errorInPlaceHostingManager 托管在 IIS 中,访问被拒绝错误
【发布时间】:2020-10-27 14:34:43
【问题描述】:

我正在使用 InPlaceHostingManager 类来集成清单文件,以便在 IIS 中托管应用程序后进行一些单击,我正在尝试获取版本号。见下面的代码

            try
        {
            iphm = new InPlaceHostingManager(new Uri(deployManifestUriStr), false);                
            iphm.GetManifestCompleted += new EventHandler<GetManifestCompletedEventArgs>(iphm_GetManifestCompleted);
            iphm.GetManifestAsync();
        }
        catch (UriFormatException uriEx)
        {
            this._logger.Fatal(uriEx, $"Unable to load Applicaition Versions (Invalid Uri) for uri : {deployManifestUriStr}");
        }
        catch (PlatformNotSupportedException platformEx)
        {
            this._logger.Fatal(platformEx, $"Unable to load Applicaition Versions (Platform Not Supported Exception) for uri : {deployManifestUriStr}");
        }
        catch (ArgumentException argumentEx)
        {
            this._logger.Fatal(argumentEx, $"Unable to load Applicaition Versions (Argument Exception) for uri : {deployManifestUriStr}");
        }
        catch (UnauthorizedAccessException ex)
        {
            this._logger.Fatal(ex);
            this._logger.Fatal(ex.InnerException);
            this._logger.Fatal(ex, $"Unable to load Applicaition Versions (Unauthorized Access Exception) for uri: {deployManifestUriStr}");
        }
        catch (Exception ex)
        {
            this._logger.Fatal(ex, $"Unable to load Applicaition Versions (Exception) for uri : {deployManifestUriStr}");
        }

我收到以下错误

System.UnauthorizedAccessException:对路径“部署”的访问被拒绝。 在 System.IO.__Error.WinIOError(Int32 错误代码,字符串可能全路径) 在 System.IO.Directory.InternalCreateDirectory(字符串 fullPath,字符串路径,对象 dirSecurityObj,布尔检查主机) 在 System.IO.Directory.InternalCreateDirectoryHelper(字符串路径,布尔检查主机) 在 System.Deployment.Application.SubscriptionStore..ctor(字符串 deployPath,字符串 tempPath,ComponentStoreType 存储类型) 在 System.Deployment.Application.SubscriptionStore.get_CurrentUser() 在 System.Deployment.Application.DeploymentManager..ctor(Uri 部署源,布尔 isUpdate,布尔 isConfirmed,DownloadOptions 下载选项,AsyncOperation optionalAsyncOp) 在 System.Deployment.Application.InPlaceHostingManager..ctor(Uri 部署清单,布尔 launchInHostProcess) 在 Logging.ApplicaitionVersionManifestHelper.Read(String deployManifestUriStr) 中

应用程序池作为网络服务运行。有谁知道部署文件夹在哪里?

【问题讨论】:

    标签: iis clickonce


    【解决方案1】:

    我查看了 InPlaceHostingManager > DeploymentManager > SubscriptionStore > Get_CurrentUser (CurrentUSer) 我发现了以下内容

            public static SubscriptionStore CurrentUser
        {
            get
            {
                if (_userStore == null)
                {
                    lock (_currentUserLock)
                    {
                        if (_userStore == null)
                        {
                            string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
                            string deployPath = Path.Combine(folderPath, "Deployment");
                            string tempPath = Path.Combine(Path.GetTempPath(), "Deployment");
                            _userStore = new SubscriptionStore(deployPath, tempPath, ComponentStoreType.UserStore);
                        }
                    }
                }
    
                return _userStore;
            }
        }
    

    将代码复制到可以调试的地方后,我发现了以下内容。

    string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
    

    以上行不返回任何内容。这导致我以下 Stackoverflow Post

    此更改为我修复了它

    打开您的 %WINDIR%\System32\inetsrv\config\applicationHost.config 并查找 &lt;applicationPoolDefaults&gt;。在&lt;processModel&gt; 下,确保您具有以下属性loadUserProfile="true" setProfileEnvironment="true"

    【讨论】:

      【解决方案2】:

      您可以使用进程监视器查看哪个是部署文件夹。 关于如何使用 Process Monitor 可以参考这个链接: Process Monitor

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        相关资源
        最近更新 更多