我试图让扬鞭与ServiceStack工作。该网站服务器位于防火墙后面,并从互联网(my.domain.de:80)进行访问。然后请求转发到Web服务器上的端口8070。
当来访的招摇页面就能够访问/api/resources
和检索ServiceMethods的名单,但随后无法检索操作的列表。
当我使用Fiddler检查结果我看到他/api
缺失使招摇试图从/resources/ServiceName
而不是/api/resources/ServiceName
获得的操作列表。
昂首阔步-UI给我下面的错误信息:
无法读取路径http://my.domain.de/resource/ServiceName API“服务名称”(服务器返回未找到)
SwaggerConfig:
discoveryUrl:"../../api/resources",
ServiceStack配置:
WebHostUrl = "http://my.domain.de"
更新(2)如果我不设置WebHostUrl从ServiceStacks资源服务的初始响应的基本路径包含了从网络服务器basePath=http://my.domain.de:8060/api
的端口号。但在防火墙这个端口不可达,我们也不希望它是可到达。
web.config
:
<location path="api">
<system.web>
<httpHandlers>
<add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
</httpHandlers>
</system.web>
<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>
更新
在初始响应基座路径是:
basePath=http://my.domain.de
并通过my.domain.de我的意思是一个真实的世界网址这只是没有端口,URL路径,查询字符串或片段的主机名(我acctually检查维基百科的正确名称;)
我发现在计算器上这个其他的问题,但它并没有帮助我。 Swagger with Service Stack not working
我怎样才能得到ServiceStack /资源服务以添加/api
其返回ServiceList?
OP的同事在这里。
我花了一些时间来研究这个问题,我相信这个问题是在ServiceStack的招摇支持的错误。
看这里:
https://github.com/ServiceStack/ServiceStack/pull/800
报价:“当设置,使用webhosturl在招摇和元数据链接的基础URL”
这是正确实现的元数据,但不招摇。
在SwaggerResourcesService.cs线52与覆盖,如果它被设置在WebHostUrl中的BaseURL,但作为元数据的实施确实不符合实际路径结合: