gpt4 book ai didi

sharepoint-2010 - Microsoft Dynamics Nav (Navision) 使用 BCS 与 Sharepoint 2010 集成

转载 作者:行者123 更新时间:2023-12-02 03:56:31 26 4
gpt4 key购买 nike

我正在尝试使用外部内容类型将 Microsoft Dynamics Nav 2009 R2 (Navision) 与 Sharepoint 2010 集成。我对 Dynamics Nav 和 Sharepoint 2010 中的 Buisness Connectivity Service 都很陌生,我无法让它工作。

我知道您可以将 Dynamics Nav 中的页面发布为 Web 服务,我已经将其中一个演示页面发布为 Web 服务,并使用 Visual Studio 成功连接到它(将其添加为 Web 引用)。我以编程方式调用了添加和删除方法,它运行良好。

我打开 Sharepoint 设计器并尝试添加外部内容类型。我将“数据源类型”设置为“WCF 服务”,并在“服务元数据 Url”和“服务端点 Url”中使用 Web 服务的 URL (http://devel:7047/DynamicsNAV/WS/Page/Customer) ”。当我尝试连接到 Web 服务时,我收到一条错误消息“找不到任何匹配的端点配置”。

正如我之前所说,我对 SharePoint 中的 Microsoft Dynamics Nav 和外部内容类型都很陌生。很难找到有关 Dynamics Nav 和 Sharepoint 集成的信息,我感觉有点迷茫。如果有人能阐明如何使用 BCS 将 Dynamics Nav 与 SharePoint 集成,我们将不胜感激。

最佳答案

请原谅我,虽然我对 NAV 网络服务有所了解,但对 Sharepoint 和 BCS 几乎一无所知。

不过,话虽如此,我确实有一些可能有用的建议:首先,也是最重要的,NAV Web 服务构建在 WCF 上并使用 BasicHttpBinding。如果您对如何将 WCF BasicHttpBinding 服务连接到 BCS 进行一些研究,您可能会在那里获得一些牵引力。任何标准 BasicHttpBinding 服务和特定于 NAV 的 Web 服务之间没有根本区别。

您还提到您能够使用 Web 引用在 Visual Studio 中成功连接到 NAV Web 服务。但是,Web 引用代理是使用较旧的“wsdl.exe”实用程序构建的,因此只能使用经典的 SOAP Web 服务。虽然 BasicHttpBinding 服务完全向后兼容 SOAP Web 服务,但仍然存在缺少任何 WCF 服务独有的配置设置的问题。您真的可能想考虑在 visual studio 中使用服务引用,并弄清楚如何让它与您发布的 NAV web 服务一起正常工作。有了它,您可以使用生成的配置设置来希望了解共享点设计器中缺少的内容。我的猜测是缺少“端点配置”错误告诉您,用很多话来说,在您可以使用 WCF 代理连接到 NAV Web 服务之前,Sharepoint 设计器中需要一些特定于 WCF 的设置。例如,它可能在安全领域,因为 WCF 为您提供了比传统 SOAP 更精细的控制级别。同样,我认为关键是记住 Sharepoint 需要正确配置的 WCF 端点,而旧的 Web 引用则不需要。这可能就是为什么您可以让它在 visual studio 中工作,而不是在 Sharepoint 设计器中工作。

只是给你一个想法(不是“最佳实践”中的一课),当我在我的 NAV 项目中创建服务引用代理时,我经常尝试使用基于代码的配置而不是过于冗长的基于文件的配置(特别是因为我们无论如何都无法控制 NAV 服务层端点绑定(bind))。我使用与此类似的代码来创建客户端连接(当然这只是伪代码,不会编译,您需要指向一个实际的服务引用客户端代理类,例如,但这应该给您一个想法哪些 WCF 绑定(bind)配置参数是必需的):

    using System.Security.Principal;
using System.ServiceModel;

private void TestNavConnection(string url)
{
using (var ws = new NavServiceReference(GetBindingTransportCredentialOnly(), new EndpointAddress(url)))
{
ws.ClientCredentials.Windows.AllowNtlm = true;
ws.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Delegation;
var record = ws.Read("XYZ");
}
}

private static BasicHttpBinding GetBindingTransportCredentialOnly()
{
var binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
binding.MaxReceivedMessageSize = 1048576;
return binding;
}

希望这对您有所帮助。祝你好运!

关于sharepoint-2010 - Microsoft Dynamics Nav (Navision) 使用 BCS 与 Sharepoint 2010 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12369482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com