在 UCMA 3.0 中正确建立 ApplicationEndpoint
Posted
技术标签:
【中文标题】在 UCMA 3.0 中正确建立 ApplicationEndpoint【英文标题】:Properly Establishing an ApplicationEndpoint in UCMA 3.0 【发布时间】:2011-01-11 03:16:06 【问题描述】:我一直在努力让应用程序端点在 UCMA 3.0 上运行。我正在尝试在与 Lync 服务器分开的服务器上运行应用程序,该服务器使用注册的 ApplicationEndpoint 来监视存在并充当可以发送其他用户消息的机器人。我曾经让我的代码与 UserEndpoint 一起工作(这对于监控状态来说很好),但没有向其他 Lync 用户发送 IM 的能力。
在网上搜索后,我终于在运行代码时遇到此错误:
System.ArgumentException 未处理 Message=只有在指定代理和多 Tls 时才能注册 ApplicationEndpoint。 来源=Microsoft.Rtc.Collaboration 堆栈跟踪: 在 Microsoft.Rtc.Collaboration.ApplicationEndpoint..ctor(CollaborationPlatform 平台,ApplicationEndpointSettings 设置) 在 C:\Users\l1m5\Desktop\waldoproject\trunk\WaldoSoln\waldoGrabPresence\endpointHelper.cs:line 117 中的 Waldo.endpointHelper.CreateApplicationEndpoint(ApplicationEndpointSettings applicationEndpointSettings) 在 C:\Users\l1m5\Desktop\waldoproject\trunk\WaldoSoln\waldoGrabPresence\endpointHelper.cs:line 228 中的 Waldo.endpointHelper.CreateEstablishedApplicationEndpoint(String endpointFriendlyName) 在 C:\Users\l1m5\Desktop\waldoproject\trunk\WaldoSoln\waldoGrabPresence\waldoGrabPresence.cs:line 60 中的 Waldo.waldoGrabPresence.Run() 在 C:\Users\l1m5\Desktop\waldoproject\trunk\WaldoSoln\waldoGrabPresence\waldoGrabPresence.cs:line 42 中的 Waldo.waldoGrabPresence.Main(String[] args) 在 System.AppDomain._nExecuteAssembly(程序集程序集,字符串 [] 参数) 在 System.AppDomain.ExecuteAssembly(字符串 assemblyFile,证据 assemblySecurity,String [] args) 在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 在 System.Threading.ThreadHelper.ThreadStart_Context(对象状态) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态) 在 System.Threading.ThreadHelper.ThreadStart() 内部异常:
经过一番搜索,我按照此处的说明:http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/21/installing-a-certificate-for-ucma-v2-0-applications.aspx 将证书导入到我尝试运行应用程序的服务器上,但无济于事。
所以在这一点上,我认为我设置 ApplicationEndpointSettings、CollaberationPlatform 或 ApplicationEndpoint 对象的方式一定有问题。以下是我的做法:
ApplicationEndpointSettings settings = new ApplicationEndpointSettings(_ownerURIPrompt, _serverFQDNPrompt, _trustedPortPrompt);
ServerPlatformSettings settings = new ServerPlatformSettings(null, _serverFQDNPrompt, _trustedPortPrompt, _trustedApplicationGRUU);
_collabPlatform = new CollaborationPlatform(settings);
_applicationEndpoint = new ApplicationEndpoint(_collabPlatform, applicationEndpointSettings);
有没有人发现我正在做的事情有任何问题?或者,更好的是,有没有人知道一个博客可以引导您在我所处的情况下建立应用程序端点?我在教程或示例方面工作得非常好,但还没有找到一个似乎可以完成我正在尝试做的事情。
感谢您的帮助!
【问题讨论】:
【参考方案1】:在 Lync 中获取证书的过程与 OCS2007 非常不同,而且要容易得多。我相信您发布的链接是针对 UCMA2 和 OCS 的。在 Lync 中,它基本上是两个 powershell 语句。
1) Request-CSCertificate -Action new -Type default -CA -Verbose
2) 保存该语句的结果,获取指纹,将其用作参数以: 设置-CsCertificate -Type Default -Thumbprint XXXXXXXXXXXXXXXXXXXX
Installing UCMA 3.0 and Creating a Lync Server 2010 Trusted Application Pool
【讨论】:
这里是上述文章的更新链接:blogs.claritycon.com/blog/2010/09/15/…【参考方案2】:使用 powershell 配置受信任的应用程序端点。要探索的命令是 new-trustedapplicationendpoint。您收到的错误是由于未注册受信任的端点,即使您可能已注册受信任的应用程序,它也需要一个端点才能工作,并且必须先注册该端点,然后才能配置平台。
【讨论】:
【参考方案3】:SDK CHM 文件应该是您的朋友! This section 是关于应用激活和配置
【讨论】:
【参考方案4】:将证书传递给ServerPlatformSettings
对象,然后它就可以工作了。我遇到了类似的问题,使用ServerPlatformSettings(string applicationUserAgent, string localhost, int port, string gruu, string certificateIssuerName, byte[] certificateSerialNumber)
构造函数为ServerPlatformSettings
后问题得到解决。
【讨论】:
以上是关于在 UCMA 3.0 中正确建立 ApplicationEndpoint的主要内容,如果未能解决你的问题,请参考以下文章