У меня есть приложение SL4 LOB, которое использует службы RIA только для проверки подлинности (пока).
Я использую поставщика и службу по умолчанию с небольшими дополнениями (см. Ниже).
Некоторые пользователи с медленным интернет-соединением жаловались на то, что время их входа в систему истекло, с ошибкой:
Load operation failed for query 'Login'.
[HttpRequestTimedOutWithDetail]
Логин работает на моем соединении нормально.
Итак,
- Есть ли способ увеличить время ожидания для сервисных операций AuthenticationService?Я видел много исправлений для тайм-аута служб RIA, но все они относятся к DomainDataContexts, а не к самому AuthenticationService.
- Возможно ли, что те пользователи, которые получают тайм-аут, из-за того, что они стоят за неприятнымбрандмауэр?Могут ли они получить доступ к сайту (порт 80), загрузить приложение Silverlight, но заблокированы только вызовы службы WCF?
MyCustomMembershipProvider:
public class MyCustomMembershipProvider : SqlMembershipProvider
{
public override MembershipUser CreateUser(string username, string password,
string email, string passwordQuestion, string passwordAnswer, bool isApproved,
object providerUserKey, out MembershipCreateStatus status)
{
var newUser = base.CreateUser(username, password, email, passwordQuestion,
passwordAnswer, false, providerUserKey, out status);
if (newUser != null)
{
SendEmailToAdminForApproval(newUser);
}
return newUser;
}
private void SendEmailToAdminForApproval(MembershipUser user)
{
// Send a mail here
}
}
И, Служба аутентификации:
[EnableClientAccess]
public class AuthenticationService : AuthenticationBase<User>
{
public List<User> GetUsers()
{
return System.Web.Security.Membership.GetAllUsers().Cast<User>().ToList();
}
}