2012-11-19 3 views
6

다음과 같은 구성이 있습니다. 내가 다른 <system.webServer /> 섹션을 추가 할 경우왜 ServiceStack은이 구성으로 404를 반환합니까?

<location path="services"> 
    <system.web> 
    <httpHandlers> 
     <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" /> 
    </httpHandlers> 
    <authorization> 
     <allow users="*"/> 
    </authorization> 
    </system.web> 
    <!-- Required for IIS 7.0 --> 
    <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> 

가 아닌 location 요소 내에, ServiceStack는 모든 요청에 ​​대해 404를 반환합니다. 그것을 제거하면 모든 것이 다시 작동합니다.

 
HTTP/1.1 404 Not Found 
Cache-Control: private 
Content-Type: text/plain; charset=utf-8 
Server: Microsoft-IIS/7.5 
X-Powered-By: ServiceStack/3.926 Win32NT/.NET 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Mon, 19 Nov 2012 23:15:46 GMT 
Content-Length: 1528 

Handler for Request not found: 


Request.ApplicationPath: /MyWebApp.Web.UI 
Request.CurrentExecutionFilePath: /MyWebApp.Web.UI/services/echo/ 
Request.FilePath: /MyWebApp.Web.UI/services/echo/ 
Request.HttpMethod: GET 
Request.MapPath('~'): D:\Lib\MyWebApp\2013\MyWebApp\MyWebApp.Web.UI 
Request.Path: /MyWebApp.Web.UI/services/echo/ 
Request.PathInfo: 
Request.ResolvedPathInfo: /services/echo 
Request.PhysicalPath: D:\Lib\MyWebApp\2013\MyWebApp\MyWebApp.Web.UI\services\echo\ 
Request.PhysicalApplicationPath: D:\Lib\MyWebApp\2013\MyWebApp\MyWebApp.Web.UI\ 
Request.QueryString: 
Request.RawUrl: /MyWebApp.Web.UI/services/echo/ 
Request.Url.AbsoluteUri: http://localhost/MyWebApp.Web.UI/services/echo/ 
Request.Url.AbsolutePath: /MyWebApp.Web.UI/services/echo/ 
Request.Url.Fragment: 
Request.Url.Host: localhost 
Request.Url.LocalPath: /MyWebApp.Web.UI/services/echo/ 
Request.Url.Port: 80 
Request.Url.Query: 
Request.Url.Scheme: http 
Request.Url.Segments: System.String[] 
App.IsIntegratedPipeline: True 
App.WebHostPhysicalPath: D:\Lib\MyWebApp\2013\MyWebApp\MyWebApp.Web.UI 
App.WebHostRootFileNames: [global.asax,global.asax.cs,header.html,list.html,login.html,MyWebApp.web.ui.csproj,MyWebApp.web.ui.csproj.user,packages.config,web.config,bin,humanresources,js,obj,properties,styles,_sgbak] 
App.DefaultHandler: DefaultHttpHandler 
App.DebugLastHandlerArgs: GET|/MyWebApp.Web.UI/services/echo/|D:\Lib\MyWebApp\2013\MyWebApp\MyWebApp.Web.UI\services\echo\ 

는 또 다른 system.webServer 섹션이 수 없습니다 :

다음은 예제 응답입니까? 거기에 IIS URL 재 작성 규칙을 추가하고 싶습니다.

답변

4

여분의 system.webServer 선언이 Web.Config에서 호스팅 된 경로의 ServiceStack 자동 추론을 방해 할 수 있습니다.

당신은 당신의 AppHost.Configure에서, 예컨대을 할 수있는 경우()를 참조 수동으로 경로를 설정하려고 할 수 있습니다 나타납니다

SetConfig(new HostConfig { 
    HandlerFactoryPath = "services", 
}); 
+0

이 될 수 있습니다. 수정 (및 훌륭한 라이브러리) 주셔서 감사합니다. – Daniel

+0

thx :) kool, 기뻤습니다. – mythz

+0

감사합니다. Ria 서비스를 사용하여 Silverlight에서 동일한 문제가 발생했습니다. – epitka

관련 문제