slowcheetah新的asp.net mvc变换无法正常工作

时间:2012-08-05 01:15:17

标签: asp.net-mvc-3 slowcheetah

我想我一定会错过慢速的东西。我创建了一个新的asp.net mvc3应用程序。使用默认值为web.config添加了一个appsetting。然后我为每个调试和发布配置文件添加了一个转换。我还创建了一个读取此值的视图。当我预览变换时,转换工作正常。我的理解是,如果我在发布模式下运行项目,那么项目将从发布转换中读取应用程序设置,如果我在调试模式下运行项目,它将从调试配置中读取应用程序设置。

这是web.config的相关部分

<appSettings>      
    <add key="cheetah_val" value="default_val"/>
  </appSettings>

这是web.debug.config

<?xml version="1.0"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">  

  <appSettings>
    <add key="cheetah_val" value="debug_val" xdt:Transform="Replace" xdt:Locator="Match(key)"/>

  </appSettings>
  <system.web>

  </system.web>
</configuration>

这是web.release.config

<?xml version="1.0"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <appSettings>
    <add key="cheetah_val" value="release_val" xdt:Transform="Replace" xdt:Locator="Match(key)"/>

  </appSettings>
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />

  </system.web>
</configuration>

HomeController.cs

public class HomeController : Controller
    {
        public ActionResult Index()
        {    

            ViewBag.CheetahMessage = System.Configuration.ConfigurationManager.AppSettings["cheetah_val"];   
            return View();
        }          
    }

和index.cshtml

@{
    ViewBag.Title = "Home Page";
}

<h2>@ViewBag.CheetahMessage</h2>

我希望在发布模式下输出为release_val,在调试模式下为debug_val。我究竟做错了什么?还是我错过了重要的事情?对于网站,F5功能不起作用吗?对于网站,我是否必须实际发布这个以使转换工作?

2 个答案:

答案 0 :(得分:3)

  

我的理解是,如果我以发布模式运行项目,那么   该项目将从该版本的应用程序设置中读取   转换,如果我在调试模式下运行项目,它会读取   在调试配置的应用程序设置中。

当我最初阅读并下载slowcheetah时,这也是我的假设。

  

对于网站,我是否必须实际发布此内容才能获得   转型工作?

AFAIK,您必须发布网站和Web应用程序项目才能使转换工作。 Slowcheetah甚至没有这样做,它是VS发布工具。 Slowcheetah只允许您预览变换。

如果我对这个人有误,请大声说出来,因为我也希望能够在IIS Express中进行本地调试时运行转换。

一种可能的解决方案是在您的计算机上设置真正的IIS,以便从您的发布目录提供服务。然后,当您想要了解转换如何影响行为时,可以将Web发布到IIS并使用它来查看站点。我不认为这会让你附加一个调试器。

答案 1 :(得分:-1)

我的理解是SlowCheetah用于App.Config而不是web.config

为web.config做同样的事情应该已经是VS2010的标准部分了。

这是Scott Hanselman谈论它(看6分20秒) http://www.hanselman.com/blog/WebDeploymentMadeAwesomeIfYoureUsingXCopyYoureDoingItWrong.aspx

这是他写的关于SlowCheetah的文章 http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx

我在我的app.config中使用了SlowCheetah,效果很好。