访问路径" Global \ {xxx} _YYY-YYY:13552'被拒绝。迟发型?

时间:2015-11-03 09:28:53

标签: c# visual-studio hangfire

正如标题所说,我遇到了一个"访问路径"我的MVC Web应用程序中的错误。站点应用程序池是具有标识网络服务的DefaultAppPool。我已经为网络服务用户设置了完全控制而没有运气,然后我尝试给予Everyone完全控制但它仍然无效。我从同一个文件夹(C:\ Users \ YYY \ Documents \ Visual Studio 2015 \ Projects)运行另一个应用程序,它没有问题。

失败的文件包含启动Hangfire的方法。这可能与它有关吗?

我正在使用IIS 10.0运行Windows 10 Pro。

public void Start()
{
    lock (_lockObject)
    {
        if (_started) return;
        _started = true;

        HostingEnvironment.RegisterObject(this);

        GlobalConfiguration.Configuration
            .UseSqlServerStorage("connection string");
            // Specify other options here
        _backgroundJobServer = new BackgroundJobServer();
    }
}

http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html

的当前权限
  

C:\ Users \ YYY \ Documents \ Visual Studio 2015 \ Project

Security settings

  

' /'中的服务器错误应用

     

访问路径   '全局{4deecd4f-19f6-426b-XXXX-XXXXXXXXXXXX} _YYY-YYY:13552'是   拒绝。

     

描述:执行期间发生了未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息:System.UnauthorizedAccessException:访问   路径   '全局{4deecd4f-19f6-426b-XXXX-XXXXXXXXXXXX} _YYY-YYY:13552'是   否认。

     

ASP.NET无权访问所请求的资源。考虑   授予对ASP.NET请求的资源访问权限   身份。 ASP.NET具有基本进程标识(通常是   IIS 5上的{MACHINE} \ ASPNET或IIS 6和IIS 7上的网络服务,以及   IIS 7.5上配置的应用程序池标识,如果使用的话   该申请不是冒充。如果申请是   冒充通过,身份将是   匿名用户(通常是IUSR_MACHINENAME)或经过身份验证的用户   请求用户。

     

要授予对文件的ASP.NET访问权限,请右键单击“文件”中的文件   资源管理器,选择"属性"并选择“安全”选项卡。点击"添加"   添加适当的用户或组。突出显示ASP.NET帐户,   并选中所需访问的框。

     

来源错误:

     

第36行:_backgroundJobServer = new BackgroundJobServer();

1 个答案:

答案 0 :(得分:0)

发现问题,我在同一个应用程序池上运行了两个Hangfire网站。当我为每个网站创建一个新的应用程序池时,一切都开始工作了。

似乎在同一个应用程序池上运行时,两个Hangfire实例都尝试通过同一个端口进行通信,因此首先启动的应用程序是唯一可以正常工作的应用程序。他们在相同的应用程序池中开始的原因是纯粹的懒惰,我只在我的本地IIS的Visual Studio中创建了一个虚拟目录来运行该项目。

enter image description here