C# EWS管理的API和SQL Server-登录失败。登录名来自不受信任的域,不能与Windows身份验证一起使用

C# EWS管理的API和SQL Server-登录失败。登录名来自不受信任的域,不能与Windows身份验证一起使用,c#,sql-server,sqlconnection,ews-managed-api,C#,Sql Server,Sqlconnection,Ews Managed Api,我有一个使用EWS管理的API将电子邮件保存为eml文件的流程。像这样: var propertySet = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent, EmailMessageSchema.IsRead); message.Load(propertySet); File.WriteAllBytes(fullPath, message.MimeContent.Content); 保存

我有一个使用EWS管理的API将电子邮件保存为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。

为什么不在进程运行时保持与SQL的连接处于打开状态?您是否需要为每条消息重新建立它?如果是这样-您将很快用完可用端口或达到用户限制,具体取决于SQL Server的配置方式和许可模式。您应该执行
netstat
并检查连接的增长情况。最终,这些连接将被释放,但这是值得考虑的。


在连接和处理EML文件时,您使用的是单线程还是多线程应用程序模型?

为什么不在进程运行时保持与SQL的连接处于打开状态?您是否需要为每条消息重新建立它?如果是这样-您将很快用完可用端口或达到用户限制,具体取决于SQL Server的配置方式和许可模式。您应该执行
netstat
并检查连接的增长情况。最终,这些连接将被释放,但这是值得考虑的。


在连接和处理EML文件时,您使用的是单线程还是多线程应用程序模型?

它是作为windows服务运行的单线程应用程序。我最初为每条消息创建了新的连接,因为处理每条消息需要时间。我将尝试为每条消息传递一个连接。它是作为windows服务运行的单线程应用程序。我最初为每条消息创建了新的连接,因为处理每条消息需要时间。我将尝试为每条消息传递一个连接。