2013-11-30 3 views
6

Я создаю .net web api (.net 4.5) с Visual Studio 2013, который вызывает Google.Apis.YouTube.v3 для поиска видео. Все работает отлично, когда я использую IIS Express (например, http: // localhost: 12345 /), но как только я изменил использование Local IIS (например, http: // localhost/HelloWorldWebApi), он бросает мне System.UnauthorizedAccessException { Доступ к пути «Google.Apis.Auth» запрещен. »}.Доступ к пути «Google.Apis.Auth» отрицается

Я искал часы в Интернете и ничего не нашел.

Моя DEV среда: для Windows 8.1, Visual Studio 2013, IIS 8.5

коды:

public IEnumerable<MyVideo> Get(string search) 
    { 
     try 
     { 
      string resourceName = "HelloWorldWebApi.client_secret.json"; 
      using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) 
      { 
       Credential(stream).Wait(); 
      } 

      YouTubeService youtube = new YouTubeService(new BaseClientService.Initializer() 
      { 
       HttpClientInitializer = _credential, 
       ApplicationName = "HelloWorldWebApiTest" 
      }); 

      SearchResource.ListRequest listRequest = youtube.Search.List("snippet"); 
      listRequest.Q = search; 
      listRequest.MaxResults = 5; 
      listRequest.Type = "video"; 
      SearchListResponse searchResponse = listRequest.Execute(); 

      List<MyVideo> videos = new List<MyVideo>(); 
      foreach (SearchResult result in searchResponse.Items) 
      { 
       videos.Add(new MyVideo(result.Snippet.Title)); 
      } 

      return videos; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

    private async Task Credential(Stream stream) 
    { 
     _credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
      GoogleClientSecrets.Load(stream).Secrets, 
      new[] { YouTubeService.Scope.YoutubeReadonly }, 
      "user", CancellationToken.None); 
    } 

Заранее спасибо за все помогает!

+0

## Проверьте ссылку ниже: ## http://stackoverflow.com/questions/23405767/system-unauthorizedaccessexception-access-to-the-path-google-apis-auth-is-deni –

ответ

0

Возможно, причиной этой проблемы является то, что IIS Express работает под другой учетной записью (той, что вы вошли в систему), а затем IIS мгновенно (в зависимости от конфигурации пула, но по умолчанию это ApplicationPoolIdentity)? Я думаю, что учетная запись IIS не имеет права на ресурс, содержащий Google.Apis.Auth.

Смежные вопросы