2012-04-17 29 views
3

想要連接Withings API。我在另一個項目中使用了相同的控制器,他在那裏完美地工作。在一個項目中,該網站是一個Azure卷軸(不知道這是什麼問題),它只是不起作用。首先,我得到了使用DotnetopenAuth時報告和記錄錯誤

'DotNetOpenAuth.Reporting'的類型初始值設定項引發異常。

所以我關閉了它在web.config

報告啓用= 「假」

現在,我得到

爲「DotNetOpenAuth的類型初始值。記錄儀「引發了一個異常。

我不使用log4net。

public ActionResult StartOAuth() 
    { 

     var serviceProvider = GetServiceDescription(); 
     var consumer = new WebConsumer(serviceProvider, _tokenManager); 

     // Url to redirect to 
     var authUrl = new Uri(Request.Url.Scheme + "://" + Request.Url.Authority + "/Withings/OAuthCallBack"); 

     // request access 
     consumer.Channel.Send(consumer.PrepareRequestUserAuthorization(authUrl, null, null)); 

     // This will not get hit! 
     return null; 
    } 

private ServiceProviderDescription GetServiceDescription() 
    { 
     return new ServiceProviderDescription 
     { 
      AccessTokenEndpoint = new MessageReceivingEndpoint("https://oauth.withings.com/account/access_token", HttpDeliveryMethods.PostRequest), 
      RequestTokenEndpoint = new MessageReceivingEndpoint("https://oauth.withings.com/account/request_token", HttpDeliveryMethods.PostRequest), 
      UserAuthorizationEndpoint = new MessageReceivingEndpoint("https://oauth.withings.com/account/authorize", HttpDeliveryMethods.PostRequest), 
      TamperProtectionElements = new ITamperProtectionChannelBindingElement[] { new HmacSha1SigningBindingElement() }, 
      ProtocolVersion = ProtocolVersion.V10a 
     }; 
    } 

回答

7

所以事實證明這是Azure的錯。在web.config有一個部分打破了DotnetOpenAuth。刪除此部分是一種解決方法。大概加入log4net也可以解決這個問題,但我沒有測試。

<trace> 
<listeners> 
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics"> 

<filter type="" /> 
</add> 
</listeners> 
</trace> 
+0

哇。感謝分享。如果您也可以嘗試使用錯誤repro'ing,並捕獲異常詳細信息,以便我們知道究竟出了什麼問題(您可能需要查看InnerException),我最想聽聽您的發現。 – 2012-04-18 14:07:50

+0

內部異常是'{「無法創建Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener,Microsoft.WindowsAzure.Diagnostics,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35。」}} – 2012-04-20 16:23:52