我们通过使用网站为客户提供服务,用户可以通过该网站连接到他的O365帐户并查阅/管理他的信息。测试时一切都运行良好等等,但是当我们正在进行压力测试时#34;通过同时连接多个租户,IIS(或MSOnline服务)不能很好地处理并关闭所有会话。该网站在VM上托管在VM上,其中IIS userprofile一次仅为1个用户创建1个与MSOnline服务的连接。我们这样做是因为我们无法正确设置它在IIS中有多个用户配置文件来创建与MSOnline服务的多个连接。我已经阅读了有关Azure应用服务混合连接的内容,如果我理解它,我们可以拥有与现在相同的方案,并且能够使用多个"混合连接创建多个连接"。
我的问题是,我们正在做一些我们不应该做的事情,这是IIS级别的问题还是MSOnline服务的限制或其他什么?我们有什么选择,什么是最好的,最干净的"应该做什么"选项 ?我们还使用Exchange在线连接&我们对连接没有任何问题的EWS。
修改
亲爱的社区
我不知道没有人有答案,或者我身边有什么不好的原因是没有人回应,但我想更新我们的情况:
我们已经尝试继续并实现一个自定义队列系统来逐个执行所有连接请求,这样它们就不会相互干扰,但是我们认为即使尝试实现此解决方案也不正确。我们也尝试过多线程/异步,但这也有一些问题,并不是一个稳定的解决方案。
我们的代码试图使用线程来做一些应该在不同的应用程序域中完成的事情:"应用程序域形成一个安全隔离边界" MSDN文档说。
我们使用(服务)通过powershell连接的Office 365库无疑会使用当前线程的app域 - 而且我们只使用属于同一app域的两个线程,因此我们的尝试混乱/失败。
我们发现:https://msdn.microsoft.com/en-us/library/3c4f1xde(v=vs.110).aspx我们认为这应该是我们的解决方案,但是我们不知道如何正确实现这一点并尝试了多种方法,但没有产生积极影响。
我们也试过这个:https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-configure-an-application-domain
这就是我们遇到的完全相同的问题:Unable to execute two Office 365 commands simultaneously using different accounts in C#并通过应用AppDomain“修复”来解决发布问题的人。
有人可以带我们走向正确的方向,即如何实现这一目标或指导我们走向正确的方向?
提前谢谢!
答案 0 :(得分:0)
此后,我们一直在使用AzureAD cmdlet,这使我们无法使用MSOnline服务,该服务不允许多个实例进行连接,这是我们需要的方案。