Thursday, September 27, 2007

Executing .NET Applications Located on a Remote Location

Have you tried executing an application which is on a remote machine from yours. Think it like this, you have an application written in .NET (any version) and two users are there who are willing to use the application using there machines. (Please note that in this secnario all the machines are in the same network.)

The normal process is to setup your application on both machines and tell them to use. But the problem is that you are not yet finished development so constatly there will be updates to the application. So if you install in two machines, all the time you change the application you have to install the new version in both machines. (This is ok as you think because it is only two machines, but think is there are 50 users using in 50 machines.)

In this kind of a scenario, installing the application in one machine and sharing it and making the other user access the same installation can ease your life. Isn't it?

If you just try running the application from the remote location, application might not work correctly. This is because you have to set a code group for the remote application in the local machine. Then only the local .NET classes will be accessible without problem to the remote application. To configure the things follow the points.

1. Install your required application in one machine and share the application folder if possible. (It doesn't really matter whether it is shared or not. What matters is the accessibility to the folder.) Run the application from the installed machine first to make sure the application is working properly in the local environment.

2. Install the required .NET framework on all the client (user) machines. (In my scenario above, in both uiser machines.) This is because the application is actually ran on the users machine even though it is located on a remote machine.

3. Browse to the application installation folder from a client (user) machine.
Get the 'Run' window by clicking on Start -> Run. Type the machine name or IP address of the machine where your application is installed (Note that my application resides in the machine having the IP 192.168.1.165 in my LAN).If the login criteria is asked, enter them and login. It is ok even if you use the 'Guest' account to log into the system if you have access to the shared application by the guest.
4. Open the .NET Configuration window by clicking on Start -> Control Panel -> Administrative Tools -> Microsoft .NET Framework x.x Configuration.

5. Expand the 'Runtime Security Policy' node from the left hand pane. Then expand the 'Enterprise' node and finally 'Code Groups' node. Then right click on 'All_Code' and click on New....

6. Specify a Name and Description for the code group and click Next.

7. Choose the condition type of the code group as 'URL'. In the underneath URL text box type the path to the remote application folder and put a backslash and an asterisk . In my case I typed file://192.168.1.165/Bin/* (The asterisk is used to include all the items under the folder Bin into the code group that we are creating). Then press Next.

8. From the list of existing permission sets select 'LocalIntranet' and click Next. Then click Finish in the next screen to finish and setup the new code group.

9. Now the code group is created for our remote application. But to make the application really run you have to change one property in the Code Group Properties. Continue by right clicking on the new code group that we created named 'My Code Group' and selecting 'Properties'. 10. In the code group properties, check the 'Policy levels below this level will not be evaluated' check box and press 'Ok' to apply the setting.

11. Close the open .NET Configuration windows and launch the application from the share.

If any specific functionality or if the entire application is not working please contact me, I might be able to help you out of the problem.

No comments: