0

ローカル ホストで asp.net アプリケーションを実行するとすべて問題なく動作しますが、Web サーバーでアプリを公開すると、次のエラーが表示されます。

Method 'ApplyAuthenticationToRequest' in type 'Google.Apis.Authentication.OAuth2.OAuth2Authenticator`1' from assembly 'Google.Apis.Authentication.OAuth2, Version=1.4.0.28223, Culture=neutral, PublicKeyToken=null' does not have an implementation.

これは、分析を使用するコードの一部です

...................................................

                //This is the API url which we're storing to a string
                string scope = AnalyticsService.Scopes.AnalyticsReadonly.GetStringValue();

                //For whatever reason, this is labelled wrong. It is the email address
                //that you have added as a user to your Analytics account
                string clientId = "*********@developer.gserviceaccount.com";

                //This is the physical path to the file we downloaded earlier
                //To demonstrate this, I've kept the full path to my key file.
                //Obviously, you will need to change this to match where you've
                //stored yours.
                string keyFile = @"C:\key\*************76-privatekey.p12";

                //The password Google gives you, probably the same as the one below
                string keyPassword = "notasecret";

                //Store the authentication description
                AuthorizationServerDescription desc = GoogleAuthenticationServer.Description;

                //Create a certificate object to use when authenticating
                X509Certificate2 key = new X509Certificate2(keyFile, keyPassword, X509KeyStorageFlags.Exportable);

                //Now, we will log in and authenticate, passing in the description
                //and key from above, then setting the accountId and scope
                AssertionFlowClient client = new AssertionFlowClient(desc, key)
                {
                    ServiceAccountId = clientId,
                    Scope = scope
                };

                //Finally, complete the authentication process
                //NOTE: This is the first change from the update above
                OAuth2Authenticator<AssertionFlowClient> auth =
                    new OAuth2Authenticator<AssertionFlowClient>(client, AssertionFlowClient.GetState);

                //First, create a new service object
                //NOTE: this is the second change from the update
                //above. Thanks to James for pointing this out
                AnalyticsService gas = new AnalyticsService(new BaseClientService.Initializer() { Authenticator = auth });

                //Create our query
                //The Data.Ga.Get needs the parameters:
                //Analytics account id, starting with ga:
                //Start date in format YYYY-MM-DD
                //End date in format YYYY-MM-DD
                //A string specifying the metrics

                DataResource.GaResource.GetRequest r =
                    gas.Data.Ga.Get(googleID[0]["google_analytic_id"].ToString(), "2005-01-01", DateTime.Now.ToString("yyyy-MM-dd"), "ga:visitors");

                //Specify some addition query parameters
                //    r.Dimensions = "ga:pagePath";
                r.Sort = "-ga:visitors";
                r.MaxResults = 5;

                //Execute and fetch the results of our query
                GaData d = r.Execute();
4

1 に答える 1

0

私も同じ問題を抱えてる。まだ解決策はありませんが、次のとおりです。

.net フレームワーク 4.0 を使用して MVC プロジェクトで Google API をテストしています。Google API を nugets で追加しました。プロジェクトは Web 用の VS Express 2012 で正常に動作しますが、.NET Framework バージョン:4.0.30319 を実行している IIS7 サーバーにプロジェクトを公開すると、同じクラッシュが発生しました。2 台のマシンが同じアセンブリを使用していることを確認しました。

何かが違うし、何がわからない!

于 2013-08-11T23:25:35.627 に答える