3

Withings API に接続したい。私は別のプロジェクトで同じコントローラーを使用しましたが、そこで彼は完璧に機能しました。サイトが Azure webrole であるプロジェクト (それがどのように問題なのかわかりません) では、機能しません。最初に手に入れた

「DotNetOpenAuth.Reporting」の型初期化子が例外をスローしました。

だから私はweb.configでそれをオフにしました

レポート有効="false"

今私は得た

「DotNetOpenAuth.Logger」の型初期化子が例外をスローしました。

私は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
        };
    }
4

1 に答える 1

7

つまり、それは Azure のせいでした。DotnetOpenAuthweb.configを壊したセクションがあります。このセクションを削除することが回避策です。おそらく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>
于 2012-04-18T07:15:21.280 に答える