アプリケーションでログインしようとすると大きなパフォーマンスの問題が発生します。このアプリケーションはAzureでホストされているWebアプリケーションです。私はフロントエンドに反応するjsを使用します。OWINログイン遅いパフォーマンス> 30秒
私のSimpleAuthorizationProviderでは、ユーザーを取得し、ClaimsIdentityプロパティに要求を追加しています。私はそれをローカルにデバッグする場合、私は遅いパフォーマンスの問題は、初めて私がログインするが、次回のログインは、インスタントアクセスですログインします。私がAzureのテスト環境にアップロードするとき、問題はすべてリクエストされます。
私は、WebアプリケーションのAzureの "Always on"プロパティを有効にしました。私は、要求をタイムアウトしていると多くの時間を要することは、それだけでユーザーを認証するために、私のテスト環境で15のクローネを取るSimpleAuthorizationprovider
context.Validated(ticket);
のコードのこの作品です。私のフロントエンドにも若干の遅延があります。私のフロントエンドでは、Web APIにリクエストするためにスーパーエージェントを使用しています。
は、ここに私のスタートアップクラスで私の設定です:
public void Configuration(IAppBuilder app)
{
app.UseCors(CorsOptions.AllowAll);
ConfigureOAuth(app);
var physicalFileSystem = new PhysicalFileSystem(@"./Html");
var options = new FileServerOptions
{
EnableDefaultFiles = true,
FileSystem = physicalFileSystem,
StaticFileOptions =
{
FileSystem = physicalFileSystem,
ServeUnknownFileTypes = true
},
DefaultFilesOptions = {DefaultFileNames = new[] {"Startup.html"}}
};
app.UseFileServer(options);
// Get your HttpConfiguration.
var config = GetInjectionConfiguration();
config.MessageHandlers.Add(new QueryStringBearerToken());
WebApiConfig.Register(config);
// Setup WebApi
app.UseWebApi(config);
SetupWebApi(config);
Application_Start(config);
config.EnsureInitialized();
}
public void ConfigureOAuth(IAppBuilder app)
{
var oAuthServerOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/api/token"),
AuthorizeEndpointPath = new PathString("/Login"),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(120),
Provider = new SimpleAuthorizationServerProvider(),
RefreshTokenProvider = new ApplicationRefreshTokenProvider(),
AllowInsecureHttp = true,
};
var oAuthBearerOptions = new OAuthBearerAuthenticationOptions
{
Provider = new QueryStringOAuthBearerProvider(),
AccessTokenProvider = new AuthenticationTokenProvider(),
};
app.UseOAuthBearerAuthentication(oAuthBearerOptions);
app.UseOAuthAuthorizationServer(oAuthServerOptions);
}
EDIT:
私は今context.validated(チケット)の問題ではないと言うことができます。 Azureでアプリケーションの洞察を結び、そこからさらに有用な情報を得ることができるかどうかを確認しました。私の推測では依然としてリクエストがヒットする前にAPIプロセスが "ウォームアップ"されておらず、プロセスが毎回向上する必要があるという結果に終わりました。私はそれをローカルでデバッグするとき、私のトークンエンドポイントにヒットする最初の要求のために約10 sekを要します。その要求の後、私は別のものを送って、すべてが期待どおりに機能します。ここで何度も掘削が必要です)
オーケー、私はそれをしようとしますです。うまくいけば、私はいくつかの答えを見つけるでしょう。 –