IIS下的多个端点
我一直在尝试在IIS下托管的服务中添加新端点,但过去一天左右无法弄清楚。
这是我的理解:
- 您可以在IIS下拥有多个端点,只要它们具有唯一的地址即可。
- 您可以分配一个基地址,但它将被IIS中的虚拟目录设置覆盖。
我的虚拟目录是http:// localhost / WcfCert /
我可以使用http://localhost/wcfcert/service1.svc启动服务
但http://localhost/wcfcert/test/service1.svc/test在IE或客户端应用程序中不返回任何内容
我在这里错过了什么?
编辑:
所以我做了进一步的测试,这就是我发现的。
如果我启动WcfTestClient.exe并添加http:// localhost:1523 / Service1.svc或http:// localhost:1523 / Service1.svc / mex ,它将在该地址下添加两个端点。 所以这里是我的问题不应该http:// localhost:1523 / Service1.svc只代表第一个端点? 为什么添加该地址会带来两个端点?
但如果我尝试添加http:// localhost:1523 / Service1.svc / test我得到
错误:无法从http:// localhost:1523 / Service1.svc / test获取元数据如果这是您有权访问的Windows(R)Communication Foundation服务,请检查您是否已在指定地址启用元数据发布。 有关启用元数据发布的帮助,请参阅http://go.microsoft.com/fwlink/?LinkId=65455上的MSDN文档.WS-Metadata Exchange错误URI: http:// localhost:1523 / Service1.svc / test元数据包含无法解析的引用:’ http:// localhost:1523 / Service1.svc / test ‘。
Sendera:BadContextToken
无法处理消息。 这很可能是因为“ http://schemas.xmlsoap.org/ws/2004/09/transfer/Get ”操作不正确,或者因为邮件包含无效或过期的安全上下文令牌,或者因为绑定之间存在不匹配。 如果服务由于不活动而中止了通道,则安全上下文令牌将无效。 防止服务中止空闲会话过早增加服务端点绑定的接收超时.HTTP GET错误URI: http:// localhost:1523 / Service1.svc / test下载’ http:// localhost:1523时出错/Service1.svc/test ‘。 请求失败,HTTP状态为400:错误请求。
它实际上是:
HTTP://localhost/wcfcert/service1.svc/test
如果您希望URL为“ http://localhost/wcfcert/test/service1.svc ”,则需要在address属性中指定完整的URL。
我最近遇到了类似的问题,我认为原因是因为WcfTestClient需要mex端点来查询它正在测试的服务的元数据。
当您将服务地址"http://localhost:1523/Service1.svc"
到WcfTestClient时,它实际上会查询端点"http://localhost:1523/Service1.svc/mex"
以获取服务描述。
显示错误“无法从"http://localhost:1523/Service1.svc/test"
获取元数据"http://localhost:1523/Service1.svc/test"
因为WcfTestClient正在寻找“/ test / mex”端点以在“/ test”获取服务的元数据。
要解决此问题,您需要添加另一个端点以提供有关托管在地址“/ test”的服务的元数据:
这是对我有用的解决方案。