0
我正在嘗試在SharePoint中託管WCF服務。我已經配置了服務兼容與ASP.NET讓我訪問的HttpContext和會話信息SharePoint中的動態WCF基地址
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MISDataService : IMISDataService { ... }
而且我的配置看起來像這樣
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service name="MISDataService">
<endpoint address="" binding="webHttpBinding" contract="MISDataViews.IMISDataService" />
</service>
</services>
</system.serviceModel>
雖然這給了我訪問當前HTTP上下文中,服務始終位於根域下,即http://www.mydomain.com/_layouts/MISDataService.svc
。
在SharePoint中,被訪問的URL通過SPContext類爲您提供有關當前站點的特定上下文信息。因此,通過託管在虛擬目錄中的服務,我希望它在多個地址上可用,例如
http://www.mydomain.com/_layouts/MISDataService.svc
http://www.mydomain.com/sites/site1/_layouts/MISDataService.svc
http://www.mydomain.com/sites/site2/_layouts/MISDataService.svc
這樣服務可以根據當前上下文找出要返回的數據。
是否可以動態配置端點地址?或者是在一個位置託管服務的唯一選擇,然後將「上下文」傳遞給它一些方法?
您可以但只要執行服務似乎在域的根下,即如果您請求http://www.mydomain.com/sites/site1/_layouts/MISDataService.svc,服務實際上執行下http://www.mydomain.com/_layouts/MISDataService.svc的上下文。這可能是SharePoint阻礙,但我不這麼認爲...... – 2010-04-20 08:11:20