![]() |
#1 |
Участник
|
Please read this post to get a brief explanation of the scenario I will implement in Silverlight. Yes, yes – I know it isn’t a fancy graphical whatever as Silverlight should be, but to be honest – I would rather do something crappy on purpose than trying to do something fancy and everybody would find it crappy anyway:-)
Getting started with Silverlight http://silverlight.net/getstarted – is your friend. Go to the web site and click this button: ![]() Or click the image above directly. Within a few seconds you will find yourself installing all the free tools you need to start developing Silverlight applications. On the getstarted web site you will also find videos and walkthroughs on how to develop in Silverlight. Silverlight is .net and c# so really guys… – how hard can it be? That was what I thought! So I just downloaded the Silverlight development platform and started coding and as soon as I tried to connect to NAV Web Services I ran into the showstopper: ![]() Meaning that for a Silverlight application to be able to communicate with NAV Web Services – it needs to be deployed in the same location as NAV Web Services – http://localhost:7047 – that doesn’t really sound like a good idea. On MSDN i found this article explaining about this in detail: http://msdn.microsoft.com/en-us/libr...32(VS.95).aspx Silverlight needs permission by the Web Services host to access the Web Service – it kind of seems like overkill due to the fact that our web services are authenticated with Windows Authentication but I guess there are other services where this makes sense. To make a long story short – if connecting to http://localhost:7047/DynamicsNAV/WS/SystemService – then Silverlight will first try to download http://localhost:7047/clientaccesspolicy.xml and check whether this is OK, but as you can imagine – NAV doesn’t do that:-( clientaccesspolicy.xml So if NAV doesn’t support that – how do we get around this obstacle? (of course you know that there is a way – else you wouldn’t be reading this and I wouldn’t be writing it) The trick is just to create a small windows service that does nothing but host this file. We are lucky that the endpoint of NAV Web Services is http://localhost:7047/DynamicsNAV – and everything underneath that – so I should be able to create a WCF Service hosting just the xml file on http://localhost:7047 NAV Policy Server I have created a small project called the NAV Policy Server. It is a Windows Service, hosting a WCF Service that will service a “allow all” version of clientaccesspolicy.xml, making Silverlight 3 able to connect to NAV Web Services. You can read here about how to create a Windows Service (including how to create Setup functionality in the Service). The main program of the Windows Service is here: using System; using System.ComponentModel; using System.ServiceProcess; using System.ServiceModel; using System.ServiceModel.Description; using System.Xml; using System.Reflection; using System.IO; namespace NAVPolicyServer { public partial class NAVPolicyService : ServiceBase { ServiceHost host; public NAVPolicyService() { InitializeComponent(); string WebServicePort = "7047"; bool WebServiceSSLEnabled = false; // Read configuration file XmlDocument doc = new XmlDocument(); doc.Load(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase), "CustomSettings.config")); XmlNode webServicePortNode = doc.SelectSingleNode("/appSettings/add[@key='WebServicePort']"); WebServicePort = webServicePortNode.Attributes["value"].Value; XmlNode webServiceSSLEnabledNode = doc.SelectSingleNode("/appSettings/add[@key='WebServiceSSLEnabled']"); WebServiceSSLEnabled = webServiceSSLEnabledNode.Attributes["value"].Value.Equals("true", StringComparison.InvariantCultureIgnoreCase); // Base listening address string BaseURL = (WebServiceSSLEnabled ? Uri.UriSchemeHttps : Uri.UriSchemeHttp) + Uri.SchemeDelimiter + System.Environment.MachineName + ":" + WebServicePort; // Initialize host this.host = new ServiceHost(new PolicyRetriever(), new Uri(BaseURL)); this.host.AddServiceEndpoint(typeof(IPolicyRetriever), new WebHttpBinding(false ? WebHttpSecurityMode.Transport : WebHttpSecurityMode.None), "").Behaviors.Add(new WebHttpBehavior()); } <font color="#0000ff" face="Courier New"> &Update rollup 6 for Microsoft Dynamics NAV 2013 (Build 35345) has been released. Update rollup 6 includes all application and platform hotfixes and regulatory features that have been released for Microsoft Dynamics NAV 2013 and includes hotfixes that apply to all countries and hotfixes specific to the following local versions:
You can download update rollup 6 from KB 2881294 - Update Rollup 6 for Microsoft Dynamics NAV 2013 (Build 35345). The hotfixes that have been released since update rollup 5 are listed in KB 2881294. For a full list of all hotfixes included in the update rollup, see the following CustomerSource and PartnerSource pages: CustomerSource:
For more information about update rollups for Microsoft Dynamics NAV 2013, see Announcement of new hotfix process for Microsoft Dynamics NAV 2013. Источник: http://blogs.msdn.com/b/freddyk/arch...-released.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|