2

我在配置我的 ServiceStack REST 服务以在我的生产 IIS 7.5 机器上工作时遇到问题。它运行本地主机运行良好,如果我部署在“默认网站”的根目录 - /EmployeeSvc 中也运行良好。出于组织目的,我在默认网站下有一个虚拟目录结构(请注意 web.config 中的自定义路径)。我可以在此位置成功浏览到 default.htm,但是当我尝试执行内置 /hello 示例时,我收到:

服务器错误 404 - 找不到文件或目录。您要查找的资源可能已被删除、名称已更改或暂时不可用。

就像我说的,内置的 /hello 示例可以在 localhost 和默认网站下的根 iis 文件夹中完美运行,但不能在目录结构中运行。我在位置路径上做错了什么?

提前致谢!这是web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <location path="Employees-NoAuth/WebServices/EmployeeSvc">
        <system.web>
          <httpHandlers>
            <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
          </httpHandlers>
        </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" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" verb="*" />
          </handlers>
        </system.webServer>
  </location>

  <system.web>
    <customErrors mode="RemoteOnly"/>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>

</configuration>
4

1 回答 1

0

我会尝试以下方法:
1. 从 web.config 中删除位置节点。将 SS 配置移出。
2. 在您的类中注册基本 URL 路径,该类派生自AppHostBase

public override void Configure(Container container)
{
    this.SetConfig(new EndpointHostConfig { ServiceStackHandlerFactoryPath = "base/path" });
}
于 2013-04-02T11:31:34.133 回答