ServiceStack Routes中的句点在IIS6.0中有效但在Dev服务器中无效吗?

时间:2013-06-27 16:41:47

标签: iis routes servicestack

我正在使用服务堆栈,我需要在我的路由中包含句点,例如表示版本号,例如 /Model/v1.0/Save

当我将服务部署到IIS6上时,它可以正常工作,但是当我通过Visual Studio在本地运行它时,我得到一个错误 找不到请求处理程序。 如果我删除了这段时间,那就行了!!

我查看了所有问题并且有类似的问题, ServiceStack Handler Not Found When Periods Present in Path 但答案意味着它无法完成,我已经看到它的工作。其次,在答案中引用的链接中,服务栈休息测试似乎表明带有句点的版本号是有效路由? 看这里 https://github.com/ServiceStack/ServiceStack/blob/master/tests/ServiceStack.ServiceHost.Tests/RestPathTests.cs#L210

请有人给我一些指导! 感谢

1 个答案:

答案 0 :(得分:1)

我刚回答this similar question,我认为在这种情况下也应该适用:Visual Studio开发服务器(Cassini)对点进行错误的路由。

  

如果在Visual Studio 2010中创建文件系统网站,并且网站位于文件夹名称中包含点(。)的文件夹中,则URL路由将无法可靠地运行。从某些虚拟路径返回HTTP 404错误。发生这种情况是因为Visual Studio 2010使用根虚拟目录的错误路径启动Visual Studio开发服务器(Cassini)。

有3个解决方法,只有“使用IIS而不是Cassini”解决方法似乎适用于ServiceStack。

如果编辑项目Web属性并选中“使用IIS Express”而不是“Visual Studio Development Server”,问题就会消失。

使用IIS Express的案例是explained in the announcement, and there is a download link