【发布时间】:2010-10-05 21:46:48
【问题描述】:
我想在 ASP.NET Development WebServer (Cassini) 下使用表单身份验证运行我的新 Web 应用程序,但不在站点根目录“/”(而是在它将驻留的路径上)生产;“/新”)。
但是,构建过程给出了错误:
"使用节是错误的 注册为 allowDefinition='MachineToApplication' 超出应用层。这个错误 可能是由虚拟目录引起的 未配置为应用程序 在 IIS 中。 New.MvcWeb\obj\debug\csautoparameterize\original\web.config"
现在,我明白它在说什么了。我在虚拟目录中的 web.config 中启用了表单身份验证。当我删除 web.config,或删除“虚拟路径:/New”调试器配置,或将调试从 Cassini 移至 IIS 并在“/New”处手动创建应用程序时,错误消失。
但它只是构建系统心目中的“虚拟”目录。在生产 IIS 设置中启用应用程序的路径 IS。此外,如果我删除 web.config,Cassini 会很乐意将“http://localhost/New”作为应用程序发布(例如,Server.MapPath("~") 返回我的项目目录,不带“/New”后缀) ;但是我需要在其中启用表单身份验证(应用程序级别的 web.config 参数)。
如何在保留所需功能的同时避免此构建错误?
更多详情
该项目当前配置为“文件系统”站点开发。这和 Cassini 应该让我的内容创建者更容易使用他们的 VS2010 本地副本参与开发和测试,而无需在他们的 Windows PC 上安装 IIS。我也会一键发布到本地IIS进行测试,然后打包/发布/部署到公开测试,最后发布到生产环境。在我看来,我认为 Cassini 是整个过程中非常有用的一部分。
VS2010, MVC application, file-system site project
Project Settings:
* ASP.NET 4.0
* Use Visual Studio Development Server
* Virtual Path: /New
web.config snippet:
<authentication mode="Forms">
<forms loginUrl="~/../login.html" timeout="30"/>
</authentication>
【问题讨论】:
标签: asp.net visual-studio-2010 virtual-directory cassini