我试图让路由模块使用默认的动作或控制器,但它没有。我总是面对404页面未找到。我忘了做什么?我真的很喜欢在ASP.NET MVC功能中路由,但我不确定我能在MR中做同样的事情。我正在使用IIS7和.NET 3.5的castle trunk构建。与IIS 7的城堡MonoRail路由?
6
A
回答
1
你如何配置路由?尝试从web.config管理路由规则时,我遇到了问题,但是在application-start中将其移至内联代码。
我试图找到答案,为什么xml的方式不工作,但从来没有找到一个。自从RC3以来,他们对路由引擎进行了重大改写,这可能已经破坏了它。从Application_OnStart
实施例()
var rule = new PatternRoute("default", "/") .DefaultForController().Is() .DefaultForAction().Is("index"); RoutingModuleEx.Engine.Add(rule);
记住MonoRailHandler之前加载RoutingEngineModule web.config中。
0
我试着注册这样的路由,但它仍然不起作用。
这里是我的配置文件:
<system.web>
<httpHandlers>
<add verb="*" path="*.rail" type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory, Castle.MonoRail.Framework" />
<add verb="*" path="*.vm" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.boo" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.st" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>
<httpModules>
<add name="routing" type="Castle.MonoRail.Framework.Routing.RoutingModuleEx, Castle.MonoRail.Framework" />
</httpModules></system.web>
<system.webServer>
<handlers>
<add name="MR" path="*.rail" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
</handlers>
</system.webServer>
5
如果你在IIS7,你需要的路由模块登记在system.webServer /的HttpModules节点。
system.web/httpHandlers和httpModules被IIS7忽略的AFAIK。
MonoRail路由绝对有效;我们已经开始并且愉快地运行。我这里还有配置和的global.asax.cs片段:
<system.web>
<authentication mode="None" />
<compilation debug="true" />
<!-- IIS6/integrated dev server handler/module config -->
<httpHandlers>
<clear />
<add path="favicon.ico" verb="*" type="System.Web.StaticFileHandler"/>
<add path="Trace.axd" verb="*" type="System.Web.Handlers.TraceHandler"/>
<add path="*.config" verb="*" type="System.Web.HttpForbiddenHandler" />
<add path="*.spark" verb="*" type="System.Web.HttpForbiddenHandler" />
<add path="*.sparkjs" verb="*" type="System.Web.HttpForbiddenHandler" />
<add path="/content/**/*.*" verb="*" type="System.Web.StaticFileHandler" />
<add path="/content/**/**/*.*" verb="*" type="System.Web.StaticFileHandler" />
<add path="/content/**/**/**/*.*" verb="*" type="System.Web.StaticFileHandler" />
<add path="/content/**/**/**/**/*.*" verb="*" type="System.Web.StaticFileHandler" />
<add path="*" verb="*" type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory, Castle.MonoRail.Framework" />
<add verb="*" path="*.castle" type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory, Castle.MonoRail.Framework"/>
</httpHandlers>
<httpModules>
<add name="routing" type="Castle.MonoRail.Framework.Routing.RoutingModuleEx, Castle.MonoRail.Framework" />
<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.MicroKernel" />
</httpModules>
<trace enabled="true"/>
</system.web>
<!-- IIS 7 handler/module config -->
<system.webServer>
<handlers>
<clear />
<add name="FavIcon" path="favicon.ico" verb="*" type="System.Web.StaticFileHandler"/>
<add name="Trace" path="Trace.axd" verb="*" preCondition="integratedMode" type="System.Web.Handlers.TraceHandler"/>
<add name="BlockConfig" path="*.config" verb="*" preCondition="integratedMode" type="System.Web.HttpForbiddenHandler" />
<add name="BlockSpark" path="*.spark" verb="*" preCondition="integratedMode" type="System.Web.HttpForbiddenHandler" />
<add name="BlockSparkJs" path="*.sparkjs" verb="*" preCondition="integratedMode" type="System.Web.HttpForbiddenHandler" />
<add name="content" path="/content/**/*.*" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" />
<add name="content2" path="/content/**/**/*.*" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" />
<add name="content3" path="/content/**/**/**/*.*" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" />
<add name="content4" path="/content/**/**/**/**/*.*" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" />
<add name="castle" path="*" verb="*" type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory, Castle.MonoRail.Framework" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv2.0" />
</handlers>
<modules>
<add name="routing" type="Castle.MonoRail.Framework.Routing.RoutingModuleEx, Castle.MonoRail.Framework" />
<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.MicroKernel" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
(事实上,我们从来没有在IIS6这个工作,但web开发服务器上一样 - 从那时起,我们已经得到了支持,并被告知它将与在IIS6级到ASPNET_ISAPI.DLL一个*测绘工作 - 但那时,运行Win2003的dev的更新与IIS7了东西,所以我们还没有尝试过)
protected virtual void RegisterRoutes(IRoutingRuleContainer engine)
{
engine.Add
(
new PatternRoute(ThorController.CtlrHome, "/[controller]")
.DefaultForController().Is(ThorController.CtlrHome)
.DefaultForArea().Is(ThorController.AreaPublic)
.DefaultForAction().Is(ThorController.ActionIndex)
);
engine.Add
(
new PatternRoute(ThorController.KeyDefault, "/<area>/<controller>/[action]/[id]")
.DefaultForArea().Is(ThorController.AreaPublic)
.DefaultForAction().Is(ThorController.ActionIndex)
.DefaultFor(ThorController.KeyId).IsEmpty
);
}
(中第一个路由处理我们的应用程序根目录)
(这些值是我们的ThorController基类中的常量,用于尝试以减少字符串文字)
顺便说一句,任何人都知道是否存在句法来做我们在一行中处理静态文件的操作?肯定有比我们的“解决方案”更好的方法;-)
相关问题
- 1. 城堡MonoRail ARDataBind试图绑定到不存在的行
- 2. IIS中的城堡WCF DefaultServiceHostFactory:访问ServiceHost
- 3. 与充气城堡
- 4. asp.net 4路由不工作在iis 7
- 5. Bouncy城堡OpenPGP与VB.Net
- 6. 与充气城堡API
- 7. 与温莎城堡在C#
- 8. ECDH与充气城堡
- 9. 使用与温莎城堡
- 10. 使用城堡NHibernate集成设施与城堡核心1.2
- 11. 使用IIS 7路由错误与IIS Express生成HTTP 404错误
- 12. 由IIS代理的RhodeCode 7
- 13. MySQL的主/从与城堡ActiveRecord的
- 14. 城堡LoggingFacility
- 15. 城堡的ActiveRecord - SessionScopeWebModule
- 16. 与owin和身份的城堡温莎
- 17. 256bit的AES/CBC/PKCS5Padding与充气城堡
- 18. WCF - IIS 6与IIS 7
- 19. IIS路由问题
- 20. IIS规则与反应路由器v4
- 21. 城堡温莎与MVC 2.0和地区
- 22. 截取属性与城堡温莎IInterceptor
- 23. 注册AutoMapper 5.1.1与温莎城堡
- 24. 温莎城堡与ASP.NET MVC 2地区
- 25. MVC3模型绑定与城堡
- 26. 城堡温莎与.net 3.5框架
- 27. RSA填充与充气城堡在BlackBerry
- 28. 与温莎城堡AOP缓存
- 29. ELMAH MVC 2 - 问题与温莎城堡
- 30. 解决家长/与温莎城堡