我有一个 WCF 数据服务,我有一个自定义 URL 重写器,因此真正的 url 不可见,我可以在路径中添加特殊元素来自定义它。
例如:
http://localhost/Data/ABCD.odata/
映射到:
http://localhost/Data/OneData.svc/
除了服务在响应 XML 中发布回它所在的真实路径之外,这几乎可以工作,因此 PowerPivot for Excel 等应用程序正在查看该 URL 并对该 URL 进行第二次点击,而不是在我想要的那个 URL 上。
所以问题是如何强制服务在 xml:base 中发布自定义 url。
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<service xml:base="http://localhost/Data/OneData.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
<workspace>
<atom:title>Default</atom:title>
<collection href="Products">
<atom:title>Products</atom:title>
</collection>
</workspace>
</service>
我希望发布:
<service xml:base="http://localhost/Data/ABCD.odata/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app"