使用Web根作为WCF-REST服务的根目录是否合法

时间:2011-09-16 14:35:30

标签: asp.net wcf iis

在asp.net网站内创建RESTful WCF服务是否合法,其中ServiceRoute直接指向网络的根目录。
我已经使用VS2010集成网络服务器进行了测试,它完全按照我的意愿工作,但这是一个黑客攻击,我可能会遇到生产环境中这种组合的问题吗?

详细说明:我在网站上有一些.aspx页面,网站根目录也是用default.aspx网站定义的。另外,我想通过本网站内的WCF Web服务集成一些REST资源,我希望URI在网站URI的范围内。

例:
http:// [服务器] / - >这里应该执行default.aspx http:// [server] /APage.aspx - >这里应该执行APage.aspx http:// [服务器] /用户/ [用户名] / - >这里使用[WebGet]声明的服务方法应该被称为

1 个答案:

答案 0 :(得分:0)

所描述的设计似乎适用于生产IIS,但必须进行额外的配置(不管怎样,不仅要设置root。请参阅下面的代码块)。

但是,执行此操作后,所有未知请求都将路由到Web服务。当客户端调用没有页面的网站路径时,例如http://[server]http://[server]/News并且没有REST资源指定此路径,将显示WCF帮助(如果已启用)。

要启用asp.net和wcf-REST-Service的组合,请将multipleSiteBindingsEnabled - 元素的serviceHostingEnvironment - 属性设置为true

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
    <standardEndpoints>
      ...
    </standardEndpoints>
  </system.serviceModel>