Running ASP.NET applications from a remote share
This is as much a reminder to myself for the future as anything. But I am going to start with a boast – I have a swanky new PC! I am trying to do everything in VMs (I know that a lot of people have tried this and failed but I am nothing if not altruistic). I want to keep all of my source in one place and share it between the VMs. However even though I could open the Solution in Visual Studio when I went to run it I would encounter the following error:
Server Error in ‘/’ Application.
Security Exception
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application’s trust level in the configuration file.
Exception Details: System.Security.SecurityException: Request for the permission of type ‘System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’ failed.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.] System.Reflection.Assembly._GetType(String name, Boolean throwOnError, Boolean ignoreCase) +0 System.Reflection.Assembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) +42 System.Web.UI.Util.GetTypeFromAssemblies(ICollection assemblies, String typeName, Boolean ignoreCase) +145 System.Web.UI.TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError) +73 System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly) +111 System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData) +279
Version Information: Microsoft .NET Framework Version:2.0.50727.4927; ASP.NET Version:2.0.50727.4927
I knew that some sort of trust issue was the problem and after some Googling I came across this article that explained this problem and more importantly provided a solution. The pertinent command to execute was:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\computername\sharename\*" FullTrust -exclusive on
Hmm weird, I have run into the same issues on my Mac and have tried the same as you explain here. While Visual Studio thought all was fine I was unable to get the website to run under IIS. Must try again 🙂 now I just use Git to move my sources around.
It worked using Cassini. I’ll try against IIS and report back!
Obviously it’s not working with IIS. That’s why I love Cassini! I think that the problem is that IIS is running as a local a/c in the VM and therefore it obviously doesn’t have permissions to the folder which is external to the VM. Time for some more research…
I’ve stumbled across a few other issues with this approach and detailed them here:
http://colinramsay.co.uk/diary/2009/09/24/getting-iis-7-5-in-virtualbox-to-serve-sites-from-an-osx-share/