如何将Windows Phone 8.1(Silverlight)连接到Nav 2009 R2 Web服务?

如何将Windows Phone 8.1(Silverlight)连接到Nav 2009 R2 Web服务?,web,service,windows-phone-8.1,navision,Web,Service,Windows Phone 8.1,Navision,我已经做了几年的.Net开发人员,在将ASP.Net和winform应用程序连接到web服务方面有着丰富的经验。最近我开始与Navision合作,特别是2009 R2 我已经为ASP.Net和Winforms创建了许多成功连接到Navision web服务的应用程序,最近我被要求研究开发一个Windows Phone 8.1应用程序,以取代在平板电脑上运行的现有应用程序,而这正是它出了严重问题的地方 在阅读了以上内容和一些尝试和错误案例之后,当我打开Visual Studio 2013并创建Wi

我已经做了几年的.Net开发人员,在将ASP.Net和winform应用程序连接到web服务方面有着丰富的经验。最近我开始与Navision合作,特别是2009 R2

我已经为ASP.Net和Winforms创建了许多成功连接到Navision web服务的应用程序,最近我被要求研究开发一个Windows Phone 8.1应用程序,以取代在平板电脑上运行的现有应用程序,而这正是它出了严重问题的地方

在阅读了以上内容和一些尝试和错误案例之后,当我打开Visual Studio 2013并创建Windows Phone 8.1运行时应用程序时,似乎无法向Navision Web服务添加Web引用或服务引用

我重新开始使用WindowsPhone8.1(Silverlight)应用程序,至少我可以选择添加服务引用

我添加了指向我的Web服务的服务引用,但Web服务要求用户设置一组凭据(Windows域用户帐户),并且没有提示我输入这些凭据。好的,也许它们是在运行时设置的

在一篇关于使用Silverlight 3连接Navision web服务的文章之后,我已经准备好了大部分代码,但仍然没有输入任何用户凭据的选项。常规Silverlight与Windows Phone开发环境中使用的版本似乎有所不同

以下代码是取自我的测试应用程序的方法

    protected void ConnectToNav()
    {
        try
        {
            string serviceURL = "http://192.168.0.50:7047/DynamicsNAV/WS/TestCompany/Page/svcUser";

            svcUser_PortClient userService = new svcUser_PortClient("svcUser_Port", new EndpointAddress(serviceURL));
            userService.ClientCredentials.UserName.UserName = @"Domain\User";
            userService.ClientCredentials.UserName.Password = @"Password";

            userService.ReadMultipleCompleted += delegate(object sender, ReadMultipleCompletedEventArgs e)
            {
                display(e.Error.Message);

                if (e.Result.Length > 0)
                {
                    display("10 Users:");
                    for (int i = 0; i < e.Result.Length; i++)
                    {
                        display(e.Result[i].ToString());
                    }
                }
            };
            List<svcUser_Filter> filters = new List<svcUser_Filter>();
            userService.ReadMultipleAsync(filters.ToArray(), null, 10);
        }
        catch (Exception ex)
        {
            display(ex.Message);
        }
    }

    public void display(string s)
    {
        this.OutputTextBox.Text += s + Environment.NewLine;
    } 
protectedvoid ConnectToNav()
{
尝试
{
字符串serviceURL=”http://192.168.0.50:7047/DynamicsNAV/WS/TestCompany/Page/svcUser";
svcUser_PortClient userService=新svcUser_PortClient(“svcUser_Port”,新端点地址(serviceURL));
userService.ClientCredentials.UserName.UserName=@“域\用户”;
userService.ClientCredentials.UserName.Password=@“密码”;
userService.ReadMultipleCompleted+=委托(对象发送方,ReadMultipleCompletedEventArgs e)
{
显示(如错误信息);
如果(e.Result.Length>0)
{
显示(“10个用户:”);
for(int i=0;i
这就是返回的错误

远程服务器返回意外响应:(401)未经授权。在Silverlight中,即使服务发送差异错误代码,也可能报告404响应代码


我很想听到任何人的意见,或者知道任何关于它的好的参考资料,以及如何让它工作。

我建议使用Windows Phone运行时,以便于迁移。您可以使用ASP.NET Web API并使用其中的NAV Web服务,然后从Windows Phone应用程序调用Web API。这对你有用吗


这里有一个很好的资源。

感谢您的回复,但是我看了视频,没有看到任何对我有帮助的内容。我知道如何连接到Navision Web服务的唯一方法是在Visual Studio中添加一个Web引用,它为我提供了一个wsdl文件,该文件描述了我在C#项目中使用的对象和方法。如果你有一个例子,你可以张贴,这将告诉我如何连接到Navision网络服务,这将是非常有帮助的工作!谢谢