简介
我的 ServiceStack 服务处理通常包含句点的路由参数,即:
/people/search/b.j./upton
.最初,asp.net/ServiceStack 在遇到此路由时会抛出“404 - Not Found”异常。我尝试编码 %2E
运气不好的时期,但在通过设置 relaxedUrlToFileSystemMapping
看到一些相关问题后最终解决了问题我的 web.config
中的属性( info ) .
问题
直到今天我不得不通过添加 <location path="api">
将我的服务位置从默认路径更改为自定义路径时,它一直运行良好(如描述 here )到我的 web.config。由于在 web.config 中添加了位置节点 relaxedUrlToFileSystemMapping
设置不再适用,我的路线带有句点 /api/people/search/b.j./upton
再次中断导致 ServiceStack 出现“404 - Not Found”异常。
设置
ServiceStack - v3.9.56
IIS 7.5/IIS Express(同时出现)
网络配置:
<location path="api">
<system.web>
<httpHandlers>
<add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
</httpHandlers>
<httpRuntime relaxedUrlToFileSystemMapping="true"/>
...
</location>
问题
任何人都知道为什么 relaxedUrlToFileSystemMapping
当属性从默认路径移动到我的自定义路径时被忽略 <location path="api">
在 web.config 中?
谢谢!
最佳答案
在修改我的 web.config 之后,我能够通过移动 relaxedUrlToFileSystemMapping
来解决这个问题。在 <location>
之外进入它自己的节点节点。我不确定这是否是推荐的方法(多个 <system.web>
条目?)或者可能会导致其他一些冲突,但是在对服务进行完整的系统测试后,一切都再次正常工作,所以我将继续这样做现在。
我更新和完整的 web.config 以供引用:
<configuration>
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true"/>
</system.web>
<location path="api">
<system.web>
<httpHandlers>
<add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
</httpHandlers>
</system.web>
<connectionStrings>
<add name="AppDb" connectionString="data source=AppHost\SQLEXPRESS;Initial Catalog=db;User Id=AppUser;password=AppPwd;" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
</handlers>
</system.webServer>
</location>
</configuration>
关于asp.net - 使用自定义路径时忽略 ServiceStack web.config 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035318/