.net 在WCF vs“下运行代码”;正规的;代码执行,有什么区别?

.net 在WCF vs“下运行代码”;正规的;代码执行,有什么区别?,.net,wcf,sharepoint,runtime,.net,Wcf,Sharepoint,Runtime,我有两种模式运行的代码和平(使用SharePoint对象模型): 从普通控制台应用程序或单元测试运行程序运行。在这种情况下,代码起作用 在WCF服务中运行。WCF服务托管在控制台应用程序中。默认情况下,没有特殊的安全配置。执行失败 这两种模式的执行可能存在哪些差异,特别是与安全性相关的差异(例如,上下文、主体) SharePoint对象模型是出现问题的地方,但这不是问题的主要目标。更有趣的是,一般情况下有什么不同。若你们需要更多的细节,让我知道,我会更新问题 迄今为止的差异: Thread.Cu

我有两种模式运行的代码和平(使用SharePoint对象模型):

  • 从普通控制台应用程序或单元测试运行程序运行。在这种情况下,代码起作用
  • 在WCF服务中运行。WCF服务托管在控制台应用程序中。默认情况下,没有特殊的安全配置。执行失败
  • 这两种模式的执行可能存在哪些差异,特别是与安全性相关的差异(例如,上下文、主体)

    SharePoint对象模型是出现问题的地方,但这不是问题的主要目标。更有趣的是,一般情况下有什么不同。若你们需要更多的细节,让我知道,我会更新问题

    迄今为止的差异:

  • Thread.CurrentThread.IsThreadPoolThread(#1-false,#2-true),它显然来自threadpool

  • Sharepoint对象在后台是基于COM的。默认情况下,WCF是多线程的,与COM不兼容。

    Sharepoint对象是基于COM的。默认情况下,WCF是多线程的,与COM不兼容。

    发布失败详细信息会有所帮助。失败是特定于SharePoint的,SharePoint从不给出真正意义上的错误消息。例如,在我的例子中,我将声明添加到资源中,错误消息是“用户不存在或不唯一”。这是因为声明实际上是SharePoint中的用户对象。还有一个错误是COMException,所以我甚至无法反编译以查看真正的问题。WCF控制台应用程序是否在SharePoint服务器上运行?客户端对象模型,或服务器对象模型?SharePoint server上的服务器对象模型。现在我可以说得更多了。如果我从WCF服务创建完整的线程,并且在这个线程中运行我的代码,它也可以工作。连线。我可能需要从这个问题中删除对sharepoint的任何提及。发布失败详细信息会很有帮助。失败是特定于sharepoint的,sharepoint从不给出真正意义上的错误消息。例如,在我的例子中,我将声明添加到资源中,错误消息是“用户不存在或不唯一”。这是因为声明实际上是SharePoint中的用户对象。还有一个错误是COMException,所以我甚至无法反编译以查看真正的问题。WCF控制台应用程序是否在SharePoint服务器上运行?客户端对象模型,或服务器对象模型?SharePoint server上的服务器对象模型。现在我可以说得更多了。如果我从WCF服务创建完整的线程,并且在这个线程中运行我的代码,它也可以工作。连线。我可能需要从这个问题中删除对sharepoint的任何提及。我要指出的是,你说的例外是COMException,这意味着模型在某种程度上与COM对象交互。我不确定我之前的评论在哪里。但无论如何。COM和多线程之间没有不兼容之处。正如我在上一篇评论中所说,ASP.NET是完全多线程的,但在SharePoint COM对象模型中运行完全正常。我要指出的是,您说的异常是COMException,这意味着该模型在某种程度上与COM对象交互。我不确定上一篇评论在哪里。但无论如何。COM和多线程之间没有不兼容之处。正如我在前面的评论中所说,ASP.NET是完全多线程的,但在SharePoint COM对象模型中工作得非常好。