如何将 Windows Phone 8.1 (Silverlight) 连接到 Nav 2009 R2 Web 服务?
How do I connect Windows Phone 8.1 (Silverlight) to Nav 2009 R2 Web Services?
我已经成为 .Net 开发人员多年了,并且在将我的 ASP.Net 和 winform 应用程序连接到 Web 服务方面积累了丰富的经验。最近我开始使用 Navision,特别是 2009 R2。
我已经为 ASP.Net 和成功连接到 Navision 的 Web 服务的 Winforms 创建了许多应用程序,并且最近被要求考虑开发一个 Windows Phone 8.1 应用程序来替换一个在平板电脑上运行的现有应用程序,这就是它全部出错的地方...
看了一些案例,试错了,打开Visual Studio 2013,创建Windows Phone 8.1 Runtime application,好像没办法向 Navision Web 服务添加 Web 引用或服务引用。
我再次开始使用 w Windows Phone 8.1 (Silverlight) 应用程序,至少我可以选择添加服务参考。
我添加了指向我的 Web 服务的服务参考,但该 Web 服务要求用户设置一组凭据(Windows 域用户帐户)并且我从未被提示输入这些.好的,也许它们是在运行时设置的...
在 Microsoft blog 中的 post 中介绍了如何使用 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;
}
这是返回的错误...
The remote Server returned an unexpected response: (401) Unauthorized. In Silverlight, a 404 response code may be reported even when the service sends a difference error code.
我很乐意听取任何人的意见,他们已经使这个工作正常,或者知道对此有任何好的参考以及如何使它工作。
我建议使用 Windows Phone 运行时,以便于进行迁移。您可以做的是使用 ASP.NET Web API 并在其中使用 NAV Web 服务,然后从您的 Windows Phone 应用程序调用 Web API .这对你有用吗?
ASP.NET Web API 上有很好的资源。
我已经成为 .Net 开发人员多年了,并且在将我的 ASP.Net 和 winform 应用程序连接到 Web 服务方面积累了丰富的经验。最近我开始使用 Navision,特别是 2009 R2。
我已经为 ASP.Net 和成功连接到 Navision 的 Web 服务的 Winforms 创建了许多应用程序,并且最近被要求考虑开发一个 Windows Phone 8.1 应用程序来替换一个在平板电脑上运行的现有应用程序,这就是它全部出错的地方...
看了一些案例,试错了,打开Visual Studio 2013,创建Windows Phone 8.1 Runtime application,好像没办法向 Navision Web 服务添加 Web 引用或服务引用。
我再次开始使用 w Windows Phone 8.1 (Silverlight) 应用程序,至少我可以选择添加服务参考。
我添加了指向我的 Web 服务的服务参考,但该 Web 服务要求用户设置一组凭据(Windows 域用户帐户)并且我从未被提示输入这些.好的,也许它们是在运行时设置的...
在 Microsoft blog 中的 post 中介绍了如何使用 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;
}
这是返回的错误...
The remote Server returned an unexpected response: (401) Unauthorized. In Silverlight, a 404 response code may be reported even when the service sends a difference error code.
我很乐意听取任何人的意见,他们已经使这个工作正常,或者知道对此有任何好的参考以及如何使它工作。
我建议使用 Windows Phone 运行时,以便于进行迁移。您可以做的是使用 ASP.NET Web API 并在其中使用 NAV Web 服务,然后从您的 Windows Phone 应用程序调用 Web API .这对你有用吗?
ASP.NET Web API 上有很好的资源。