2013-10-23 27 views
1

我們正在與涼爽的URI發展(SS v3.9.64時,Visual Studio 2012,框架3.5),如成功合作:Servicestack冷卻部署時的URI不解決

Routes.Add<Bark>("/bark.ashx/{dogname}", "GET"); 

但是,當我們部署它只是我們可以讓它與查詢字符串一起工作。我們得到一個「處理器的請求未找到」使用URL就像當:

http://localhost:51781/IrpfWebApi/bark.ashx/sprocket 

我們通過剛剛發佈的項目,本地和從Visual Studio 2012上運行它重現這個問題(它應該是同一臺服務器) 。

我們使用.ashx擴展名,以便能夠在W2003/IIS6中工作,正如它在幾個地方所解釋的。

回答

2

對於IIS 6所需的.ashx擴展應該是分開處理程序路徑不是路線,e.g的:

<!-- ServiceStack: Required to host at: /api.ashx --> 
    <location path="api.ashx"> 
    <system.web> 
     <httpHandlers> 
     <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/> 
     </httpHandlers> 
    </system.web> 

    <!-- Required for IIS7 --> 
    <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> 
    <!-- Required for MONO --> 
    <system.web> 
    <httpHandlers> 
     <add path="api.ashx*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/> 
    </httpHandlers> 
    </system.web> 
    <!-- Required for IIS7 --> 
    <system.webServer> 
    <!-- ServiceStack: Required --> 
    <validation validateIntegratedModeConfiguration="false"/> 
    </system.webServer> 

然後你的路線註冊也只是:

Routes.Add<Bark>("/bark/{dogname}", "GET");