Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用自定义路径时忽略ServiceStack web.config设置 介绍_Asp.net_Iis_Web Config_Asp.net Mvc Routing_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,Asp.net,Iis,Web Config,Asp.net Mvc Routing,servicestack" /> servicestack,Asp.net,Iis,Web Config,Asp.net Mvc Routing,servicestack" />

Asp.net 使用自定义路径时忽略ServiceStack web.config设置 介绍

Asp.net 使用自定义路径时忽略ServiceStack web.config设置 介绍,asp.net,iis,web-config,asp.net-mvc-routing,servicestack,Asp.net,Iis,Web Config,Asp.net Mvc Routing,servicestack,My ServiceStack服务处理通常包含句点的路由参数,即: /people/search/b.j./upton。最初,asp.net/ServiceStack遇到此路由时会引发“404-找不到”异常。我尝试编码%2E句点,但运气不好,但在看到一些相关问题后,通过在我的web.config中设置relaxedUrlToFileSystemMapping属性()最终解决了问题 问题 直到今天,我不得不通过将(如上所述)添加到我的web.config中,将我的服务位置从默认路径更改为自定义路径

My ServiceStack服务处理通常包含句点的路由参数,即:
/people/search/b.j./upton
。最初,asp.net/ServiceStack遇到此路由时会引发“404-找不到”异常。我尝试编码
%2E
句点,但运气不好,但在看到一些相关问题后,通过在我的
web.config
中设置
relaxedUrlToFileSystemMapping
属性()最终解决了问题

问题 直到今天,我不得不通过将
(如上所述)添加到我的web.config中,将我的服务位置从默认路径更改为自定义路径,这一切都非常有效。自从在web.config中添加位置节点后,
relaxedUrlToFileSystemMapping
设置不再应用,带有句点
/api/people/search/b.j./upton
的我的路由再次中断,导致ServiceStack出现“404-未找到”异常

安装程序 ServiceStack-v3.9.56

IIS 7.5/IIS Express(发生在两者上)

web.config:

    <location path="api">
        <system.web>
          <httpHandlers>
            <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
          </httpHandlers>

           <httpRuntime relaxedUrlToFileSystemMapping="true"/>

    ...

    </location>

...
问题: 有人知道为什么在web.config中将
relaxedUrlToFileSystemMapping
属性从默认路径移动到我的自定义
中时会忽略它吗

谢谢

您是否更改了AppHost文件中的

public override void Configure(Container container)
{
    SetConfig(new EndpointHostConfig { ServiceStackHandlerFactoryPath = "api" });
}

在对我的web.config进行了一些修补之后,我通过将
relaxedUrlToFileSystemMapping
条目移动到
节点之外它自己的节点来解决这个问题。我不确定这是否是一种推荐的方法(多个
条目?),或者可能会导致一些其他冲突,但是在运行了服务的完整系统测试之后,一切又正常了,所以我现在就用它

我更新并完整的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>


我错过了这一点,并没有运气尝试了它,它似乎没有任何区别,没有它,路由似乎工作得很好。这似乎不再需要了-至少在3.9.56中是这样。很高兴您能够找到解决方案。别忘了将此标记为答案。