Управляемый API EWS и SQL Server — ошибка входа. Логин относится к ненадежному домену и не может использоваться с проверкой подлинности Windows.

У меня есть процесс, который использует управляемый API EWS для сохранения сообщений электронной почты в виде файлов eml. Так:

var propertySet = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent, EmailMessageSchema.IsRead);
message.Load(propertySet);
File.WriteAllBytes(fullPath, message.MimeContent.Content);

После сохранения файла я добавляю запись в базу данных. Проблема в том, что когда приложение сохраняет EML для особенно больших электронных писем, я не могу подключиться к SQL Server. Я получаю сообщение "Ошибка входа в систему. Вход осуществляется из ненадежного домена и не может использоваться с проверкой подлинности Windows", когда этот код попадает сюда:

using (SqlConnection conn = new SqlConnection(connString))
{
     conn.Open();

Ни один из других сообщений с этим сообщением об ошибке не подходит для моей ситуации. Я могу без проблем подключиться к SQL Server, пока не наткнусь на большое сообщение электронной почты.


person Ross    schedule 08.11.2011    source источник


Ответы (1)


Почему бы просто не оставить подключение к SQL открытым во время работы вашего процесса? Вам нужно переустанавливать его для каждого сообщения? Если это так, у вас быстро закончатся доступные порты или вы достигнете предела пользователей в зависимости от того, как настроен SQL Server и вашей модели лицензирования. Вы должны сделать netstat и проверить, как растут соединения. В конце концов, эти соединения будут освобождены, но это следует учитывать.

Используете ли вы однопоточную или многопоточную модель приложения при взаимодействии и обработке файлов EML?

person SliverNinja - MSFT    schedule 19.11.2011
comment
Это однопоточное приложение, работающее как служба Windows. Изначально я создавал новые подключения для каждого сообщения из-за времени, которое требовалось для обработки каждого из них. Вместо этого я попытаюсь передать одно соединение с каждым сообщением. - person Ross; 23.11.2011