我的系统管理员是疯了:-)当服务器的物理路径是UNC格式时,ASP.NET MVC会中断吗?

时间:2010-06-03 21:49:24

标签: asp.net asp.net-mvc iis-7

我正在努力让我的公司转向ASP.NET MVC并远离传统的ASP。我已经编写了一些示例应用程序作为概念验证,但是当我尝试将这些mvc应用程序部署到我公司的IIS7服务器时,我遇到了问题。

我的系统管理员说ASP.NET MVC中有一些东西阻止他将UNC路径指定为服务器到站点文件夹的物理路径。这对我来说听起来很荒谬,因为(据我所知)MVC框架对这个设置没有任何影响......我写的代码也没有。

底线是:如果我的任何mvc应用程序要用于客户端,则必须使用UNC物理路径在服务器上运行。目前,当服务器具有非UNC路径时,mvc应用程序将工作...只是没有UNC路径。

  1. 我告诉系统管理员不是MVC正在破坏他的UNC路径我错了吗?
  2. 我有资源你知道我可以用来研究这个问题吗?
  3. 编辑:

    浏览器中显示的错误显示:

      

    安全例外

         

    在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

    Stack跟踪显示:

      

    [SecurityException:请求类型'System.Web.AspNetHostingPermission,System,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的权限失败。]

         

    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程序集,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

2 个答案:

答案 0 :(得分:4)

.NET需要在UNC路径上运行一些额外的帮助。通常,这源于不“信任”远程计算机。这是一篇KB文章,描述了IIS中的一个这样的错误。

MS KB article

在IIS .NET UNC路径上进行Google搜索。你可以找到比我们任何人发布更多关于它为什么你必须更改配置,为什么你必须设置权限等等的帖子。不,你没有错误的MVC捣毁路径,它一般是.NET需要帮助的路径。当您运行经典ASP(基于脚本)时,您没有遇到任何这些问题。

答案 1 :(得分:0)

嗯,我不太确定,但我知道asp.net需要一个有效的UNC路径(没有\无论什么\ C $而不是\ whatever \ share)在使用像file.exist这样的函数时。与往常一样,您需要确保您的工作进程帐户具有对指定路径的正确读/写访问权限。最后,您应该使用一些常规故障排除来查看它是否不仅仅是有问题的mvc应用程序。

最后一件事,不要使用MapPath。给定相对地址时,它返回一个绝对地址。