在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]声明的服务方法应该被称为
答案 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>