2015-05-03 53 views
0

我懇求您的幫助...YouTube Api與ASP.NET 4.5 WebForms - OAuth2問題

我們需要上傳視頻到Youtube頻道,使用WebForms應用程序。所以,這是我倒要告訴你的代碼的主線:

 var folder = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/GoogleData"); 
     UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
     new ClientSecrets 
     { 
      ClientId = ConfigInfo.YouTubeApiClient_id, 
      ClientSecret = ConfigInfo.YouTubeAppClient_secret, 
     }, 
     new[] { YouTubeService.Scope.YoutubeUpload }, 
     "user", 
     CancellationToken.None, 
     new FileDataStore(folder,true)).Result; 

我有錯誤是:System.ComponentModel.Win32Exception:訪問被拒絕。

如果它那樂於助人的一些額外的信息:

  • 我創建ClientID的和console.developers.google.com憑證作爲一個應用程序。
  • 它在我的本地主機上正常工作,如果我調試應用程序,但它不能在Arvixe共享主機服務器上工作。

這是我已經嘗試過:

  • 的第一件事,我便想起該文件夾(Google資料)上被賦予讀/寫權限,所以我做到了,但還是同樣的錯誤。
  • 我以前也問Arvixe支持團隊,給予該文件夾每個人 - 完全控制訪問(他們說,他們已經已經這樣做了,但不知道)
  • 我以前也試圖刪除FileDataSource參數和使用GoogleWebAuthorizationBroker.Folder ,但同樣的錯誤。
  • 我已經閱讀了所有的Google示例和代碼,但它們都是用於控制檯或桌面應用程序的,並且我有一個帶有Web服務器的Web應用程序。

請任何幫助,你可以給我們將非常感激! 再次感謝!

+0

有完全相同的問題。我們運行我們自己的服務器(我無法訪問它們)。在Visual Studio設置爲IIS Express的本地機器上工作,但在我們的開發服務器(與我們的活動服務器重複)上給出了完全相同的錯誤。起初我還認爲這是FileDataStore,我找到了我實現的一個DatabaseDataStore(github.com/LindaLawton/Google-Dotnet-Samples/blob/master/...)的示例。仍然沒有成功,但消除了任何文件權限問題。 – Talib

+0

我懷疑它與用戶權限有關,而不是文件夾/文件權限。我無法測試這個,因爲我沒有直接訪問服務器,現在需要獲得許可才能進行更改,所以不會很快發生。我不知道該怎麼問系統管理員。這個答案把我放在那個軌道上:http://stackoverflow.com/questions/14194146/system-componentmodel-win32exception-access-is-denied-error。但它涉及到服務。 – Talib

+0

嘿!這裏有一些進展:1)使用VS在localhost上運行項目2)Google.Apis需要的文件是在你映射的文件夾(app_data/GoogleData在我的情況下)中使用令牌創建的。 3)將該文件複製到同一文件夾中的生產站點。它會工作,但我測試如果令牌自動更新或不。但問題是創建文件! – Ariel

回答

0

我最近有一個非常類似的問題給你,也託管在Arvixe上。我通過將.NET目標框架版本從4.5.2更改爲4.5來修復它。

我寫了一個short article關於它有更多的信息,以及更多的解決方案來嘗試。我希望這有幫助!